2015-12-12 17 views
8

Mam problemy z wydajnością Apache POI. Przeczytałem FAQ, gdzie odnosi się do testu wydajności. Uruchomiłem ten test z wylogowaniem i 4gb sterty i nie mogę uruchomić testów szybciej niż 22 sekundy.Apache POI Performance

To jest test biegnę: http://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/ss/examples/SSPerformanceTest.java

FAQ mówi, że jeśli nie mogę dostać ten test do uruchomienia w ciągu 3 sekund z 50000 wierszy i 50 kolumn, że „problem jest z telefonem środowisko". Czytałem inne komentarze w sieci dotyczące wyłączania rejestrowania poi i zwiększania wielkości sterty, ale nic nie pomaga.

Co jeszcze mogę sprawdzić, aby naprawić moje środowisko?

Maszyna Specyfikacja (maszyna osobisty pulpit):

 
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 

Należy również wspomnieć, że słoiki Apache POI Używam pochodzi maven central

Utworzyłem projekt testowy na github gdzie ty może po prostu sklonować projekt i uruchomić:

mvn exec:java

i ciężko kodowane parametry używam więc nie trzeba wprowadzać niczego specjalnego w wierszu poleceń . Dokumentacja mówi, że powinno to potrwać poniżej 3 sekund.

Projekt Test znajduje się tutaj: https://github.com/mikedehaan/poi-test

+0

Wspomnieć o specyfikacji sprzętu może pomóc i informacje, jak dokładnie to uruchomić. – Marged

+0

Dobry punkt ... Aktualizowanie teraz. –

+0

Możesz również napisać, jaki system operacyjny jest używany w tym teście? Windows, Linux? Jaka wersja? W przypadku problemów z wydajnością czasami jest to ważniejsze niż wersja jdk. –

Odpowiedz

7

Wyniki badań moim komputerze:

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

Dane techniczne maszyny:

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

zrobiłem profilowanie i okazało się, że XSSF jest powolny ze względu na zsynchronizowanych metod w xmlbeans i poi-ooxml-schemas bibliotek. Możesz powiadomić programistów poi i poprosić o sprawdzenie tej sprawy.

+2

Widzę podobne wyniki w moich środowiskach. Wierzę, że znalazłeś odpowiedź. Udostępniłem te informacje na liście użytkowników apache poi. Mam nadzieję, że odpowiadają. Dziękuję Ci! –