fisch@namenssuche
BIOS-Overclocker(in)
JRE7 langsamer als JRE6 - was läuft schief?
Hi zusammen,
ich bin auf ein mir unerklärliches Phänomen gestoßen:
Bei einem selbst geschriebenen Benchmark (dieser berechnet das Mandelbrot-Fraktal und Ausschnitte davon), geschrieben mit den Mitteln von Java6, erreiche ich unter der JRE6 (z.B. u41) recht passable Laufzeiten, die unter der JRE7 (u45) jedoch förmlich explodieren. Auf meinem Rechner zu Hause mit einem AMD FX 6300 ist es der Faktor 6, mit die JRE6 flotter unterwegs ist.
Kontrolliert habe ich:
- das Ergebnis (dieses ist in jedem Fall völlig korrekt und identisch)
- die Kernskalierung (diese ist bei beiden Fällen äußerst gut)
- Google , was in jedem Fall das Gegenteil behauptet -> die JRE7 soll performanter sein als die JRE6
- dieses Phänomen nicht nur auf den heimischen PC's, sondern auch auf dem Arbeitsrechner -> vergleichbares Verhalten
"Besonderheiten" des Programmes: Es ist sehr FPU-lastig (ich rechne mit double-Variablen), für das Multithreading nutze ich eine (nicht anonyme!) innere Klasse (abgeleitet von Thread / Runnable). Die kann ein wenig mehr "Overhead" erzeugen, als eine externe, "normale" Threadklasse - letztere würde aber den Code massiv aufblähen und der Overhead sollte nicht nur in der JRE7 zu spüren sein.
Ich kann bei Bedarf gerne einen Teil des Quellcodes hochladen, bin jedoch noch nicht so ganz mit dem Programm fertig - unfertigen Code gebe ich nur ungern einfach so "heraus" .
Ist jemandem so ein Performanceproblem bekannt?
Hat jemand einen Tipp, ob dieses Verhalten an "mir" (meinem Code) liegt oder ob die JRE7 wegen irgendwelchen Security-bugfixes in manchen Fällen einfach massiv inperformanter als der Vorgänger geworden ist?
Gruß
Hi zusammen,
ich bin auf ein mir unerklärliches Phänomen gestoßen:
Bei einem selbst geschriebenen Benchmark (dieser berechnet das Mandelbrot-Fraktal und Ausschnitte davon), geschrieben mit den Mitteln von Java6, erreiche ich unter der JRE6 (z.B. u41) recht passable Laufzeiten, die unter der JRE7 (u45) jedoch förmlich explodieren. Auf meinem Rechner zu Hause mit einem AMD FX 6300 ist es der Faktor 6, mit die JRE6 flotter unterwegs ist.
Kontrolliert habe ich:
- das Ergebnis (dieses ist in jedem Fall völlig korrekt und identisch)
- die Kernskalierung (diese ist bei beiden Fällen äußerst gut)
- Google , was in jedem Fall das Gegenteil behauptet -> die JRE7 soll performanter sein als die JRE6
- dieses Phänomen nicht nur auf den heimischen PC's, sondern auch auf dem Arbeitsrechner -> vergleichbares Verhalten
"Besonderheiten" des Programmes: Es ist sehr FPU-lastig (ich rechne mit double-Variablen), für das Multithreading nutze ich eine (nicht anonyme!) innere Klasse (abgeleitet von Thread / Runnable). Die kann ein wenig mehr "Overhead" erzeugen, als eine externe, "normale" Threadklasse - letztere würde aber den Code massiv aufblähen und der Overhead sollte nicht nur in der JRE7 zu spüren sein.
Ich kann bei Bedarf gerne einen Teil des Quellcodes hochladen, bin jedoch noch nicht so ganz mit dem Programm fertig - unfertigen Code gebe ich nur ungern einfach so "heraus" .
Ist jemandem so ein Performanceproblem bekannt?
Hat jemand einen Tipp, ob dieses Verhalten an "mir" (meinem Code) liegt oder ob die JRE7 wegen irgendwelchen Security-bugfixes in manchen Fällen einfach massiv inperformanter als der Vorgänger geworden ist?
Gruß
Zuletzt bearbeitet: