spring

aop 프록시 생성시 jvm 메모리 증대

초이짬 2017. 3. 29. 15:07
728x90

특정 사이트에서 도메인 패키지를 생성하지 않고

바로 서비스 패키지로 개발된 구조가 있었다

여기에 aop 기능을 추가하니 jvm 메모리가 2배(visualvm 의 visualgc 로 확인) 정도 더 늘어나는 상황을 봣다

도메인 패키지가 없으니 aop 설정 상에 전체 소스를 감시 하게 되고 아무래도 lib에 있는 놈들도

포함된 원인이 아닌가 한다.

aop 설정 추가시 메모리 문제도 염두에 두어야 할거 같다.



**추가**

 스프링 aop 는 cgilib 을 기본으로 쓴다고 알고 있다 cgilib 은

프록시 패턴을 구현할때 인터페이스가 구현되지 않아도 자기가 생성한다고 한다

결국 aop 패턴을 전체에 걸어서 프록시 패턴을 만들면 많은 메모리를 소비하는 구조인것은 당연하고

이는 프록시 패턴을 사용할때 너무 남발하면 발생되는 필연적 이유인거 같다.

위의 예 같은 경우는 좀 극단적인 경우로 도메인 패키지화 하지 않고 소스 루트 밑에 바로 패키지들이 튀어나와서

aop를 걸기가 어려운 구조이다.

728x90