2009-12-06 18 views
34

Wiele nowoczesnych frameworków (Spring, Hibernate) zapewnia bardzo ładne dynamiczne zachowania przy użyciu dynamicznych serwerów proxy Java, ale jakie są z tym związane dokładne koszty wydajności? Czy dostępne są publiczne testy porównawcze dla Sun JVM?Koszt wydajności dynamicznego proxy Java

Odpowiedz

8

ja nie wiem, czy istnieje jakakolwiek analiza wydajności w ramy, o których wspomniałeś, ale w moim projekcie lambdaj użyłem bardzo dynamicznego proxy używającego tej samej technologii (cglib). W pliku pdf, który wyjaśnia, w jaki sposób działa moja biblioteka, można również znaleźć interesujące porównanie wydajności na ten temat.

+1

Jeśli mam to prawo twoje ramy spowalnia iteracje o średni współczynnik 4,56, ale czy powiążesz to z serwerami proxy cglib lub z innymi elementami biblioteki? –

+0

2 rzeczy, które w większości spowalniają działanie lambdaj to cglib i odbicie. Moje pomiary pokazują, że drugi jest po prostu trochę bardziej istotny niż pierwszy. Przypuszczam więc, że mniej więcej inwokacja za pośrednictwem cglib może być rozważana około dwa razy wolniej niż normalnie. –

1

Według Remi Forax, proxy java zabrania kompilatorowi Jit poprawnego wykonywania swojej pracy (w tym przypadku wpisywanie).

zobaczyć jego przepisał Prokurenta

https://github.com/forax/proxy2