2015-12-12 22 views
8

Ich habe Leistungsprobleme mit Apache POI. Ich habe die FAQ gelesen, wo es sich auf einen Leistungstest bezieht. Ich habe diesen Test mit Abmeldung und 4 GB Heap ausgeführt und ich kann die Tests nicht schneller als 22 Sekunden ausführen.Apache POI Leistung

Dies ist der Test, den ich renne: http://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/ss/examples/SSPerformanceTest.java

Die FAQ sagt, dass, wenn ich diesen Test mit 50.000 Zeilen unter 3 Sekunden laufen in und 50 Spalten, dass „das Problem mit nicht bekommen kann, ist Ihr Umgebung". Ich habe andere Kommentare im Internet gelesen, die darauf hinweisen, die Poi-Protokollierung zu deaktivieren und die Größe des Heapspeichers zu erhöhen, aber nichts scheint mir zu helfen.

Was kann ich noch überprüfen, um meine Umgebung zu reparieren?

Maschine Specs (Personal Desktop-Rechner):

 
CPU: Intel i7 8-cores 
RAM: 16GB 
OS: Windows 7 64bit 
JDK: 1.8.0_66 
POI: 3.13 
JVM Params: -Xmx4g -Xms4g -Dorg.apache.poi.util.POILogger=org.apache.poi.util.NullLogger 
Command Arguments: XSSF 50000 50 0 

Ich sollte auch erwähnen, dass die Apache POI Gläser ich benutze von maven central kam

Ich habe ein Testprojekt auf Github erstellt, in dem Sie können einfach das Projekt klonen und laufen:

mvn exec:java

ich die Parameter hartcodiert ich benutze, so dass Sie keine speziellen auf der Kommandozeile etwas eingeben . Die Dokumentation besagt, dass dies in weniger als 3 Sekunden ausgeführt werden sollte.

Das Testprojekt befindet mich hier: https://github.com/mikedehaan/poi-test

+0

Eine Erwähnung Ihrer Hardware-Spezifikationen könnte helfen und die Informationen, wie genau Sie das ausführen. – Marged

+0

Guter Punkt ... Aktualisierung jetzt. –

+0

Können Sie auch schreiben, welches Betriebssystem in diesem Test verwendet wird? Windows, Linux? Welche Version? Für Performance-Probleme ist es manchmal wichtiger als die jdk-Version. –

Antwort

7

Testergebnisse auf meinem Rechner:

  • HSSF: 2 sec
  • SXSSF: 5 sec
  • XSSF: 27 sec

Technische Daten der Maschine:

 
CPU: Intel i3-2100, 3.10 GHz, 4-cores 
RAM: 16GB 
OS: Windows 7 64bit 
JDK: 1.7.0_76 

Ich habe Profilierung und fand heraus, dass XSSF aufgrund der synchronisierten Methoden in xmlbeans und poi-ooxml-schemas Bibliotheken langsam ist. Sie können poi Entwickler benachrichtigen und bitten, diesen Fall zu überprüfen.

+2

Ich sehe ähnliche Ergebnisse in meinen Umgebungen. Ich glaube, du hast die Antwort gefunden. Ich habe diese Informationen in der Apache Poi Benutzerliste geteilt. Hoffentlich antworten sie. Vielen Dank! –