2009-12-06 2 views
34

많은 최신 프레임 워크 (Spring, Hibernate)는 Java 동적 프록시를 사용하여 매우 훌륭한 동적 동작을 제공하지만 정확한 성능 비용은 무엇입니까? Sun JVM에 공개 벤치 마크가 있습니까?Java 동적 프록시의 성능 비용

답변

8

어떤 성능 분석이있는 경우 나도 몰라 당신이 언급 한 프레임 워크,하지만 내 프로젝트에서 lambdaj 나는 같은 기술 (cglib)를 사용하여 동적 프록시의 매우 큰 사용했다. 내 라이브러리가 어떻게 작동하는지 설명하는 pdf에서이 주제에 대한 흥미로운 성능 비교를 찾을 수 있습니다.

+1

에 나는 그것이 바로 프레임 워크는 속도가 느려 가지고있는 경우 4.56의 평균 인수로 반복하지만 cglib 프록시 나 다른 라이브러리 요소와 관련이 있습니까? –

+0

lambdaj의 성능을 대부분 느리게하는 2 가지 요소는 cglib와 reflection입니다. 내 측정 결과에 따르면 두 번째 측정 값이 첫 번째 측정 값보다 조금 더 적절하다는 것을 알 수 있습니다. 그래서 대략적으로 cglib을 통한 호출은 일반적인 것보다 약 두 배 느린 것으로 생각할 수 있습니다. –

1

Remi Forax에 따르면 Java 프록시는 Jit 컴파일러가 자신의 작업 (이 경우에는 인라이닝)을 올바르게 수행하는 것을 금지합니다.

특히 실제 벤치 마크를 제공 마지막 하나,

https://github.com/forax/proxy2