2011-08-08 13 views
10

Jaka jest różnica między HashMap in alt-rt.jar a rt.jar. Wydaje mi się, że w jednej z moich aplikacji widzę znaczne przyspieszenie , jakie byłoby wyjaśnienie?Różnica HashMap w alt-rt.jar i rt.jar?

Pozdrawiam

P.S .: Znalazłem dwa różne * .jar w JDK 1.6.0_25 64-bitowym. Ostatecznie przyspieszenie jest również związane z alt-string.jar. Ten alt może ostatecznie być związany z opcji wiersza poleceń :

http://thevirtualmachinist.blogspot.com/2010/09/xxusecompressedstrings.html

Ale jestem bardziej zainteresowany zrozumienie alt-rt.jar i nie widzę z wyżej artykule, że nie ma z opcją wiersza polecenia powiązaną z tym opcją.

Odpowiedz

5

alt-rt.jar jest używany tylko wtedy, gdy włączona jest opcja JGM AggressiveOpts. Rzeczywiście, HashMap z alt-rt.jar jest szybszy niż tradycyjny HashMap, jednak jego zużycie pamięci jest znacznie wyższe ze względu na użycie HashMap $ FrontCache.

Należy zachować ostrożność podczas używania parametru AggressiveOpts podczas produkcji, mieliśmy z tym problem z ograniczoną pamięcią. Mogą się kryć inne pułapki.

+0

Czy AggressiveOpts wpływa na ścieżkę zajęć? Ponieważ ścieżka alt-rt.jar znajduje się w ścieżce klasy, mam wątpliwości, czy AggressiveOpts mogą wpłynąć na użycie szybszej HashMap. Chociaż nie wątpię, że AggressiveOpts ma pewien wpływ, zobacz także: http://stackoverflow.com/questions/2959878/what-flags-are-enabled-by-xxaggressiveopts-on-sun-jre-1-6u20 –