2015-12-12 15 views
8

Problemi di prestazioni con POI Apache. Ho letto le domande frequenti in cui si riferisce a un test delle prestazioni. Ho eseguito questo test con la disconnessione e 4 GB di heap e non riesco a eseguire i test più velocemente di 22 secondi.Prestazioni POI Apache

Questa è la prova che sto correndo: http://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/ss/examples/SSPerformanceTest.java

Il FAQ dice che se non riesco a ottenere questo test per l'esecuzione in meno di 3 secondi con 50.000 righe e 50 colonne che "il problema è con il vostro ambiente". Ho letto altri commenti in giro per il web che si riferiscono alla disattivazione della registrazione di POI e all'aumento della dimensione dell'heap, ma nulla sembra aiutare.

Cos'altro posso controllare per correggere il mio ambiente?

macchina Spec (macchina desktop personali):

 
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 

Vorrei anche ricordare che i vasi di Apache POI sto usando venuto da maven central

Ho creato un progetto di test su GitHub dove può semplicemente clonare il progetto ed eseguire:

mvn exec:java

ho codificato duro i parametri che sto usando in modo da non dover digitare nulla di speciale nella riga di comando . La documentazione dice che dovrebbe funzionare in meno di 3 secondi.

Il progetto di test si trova qui: https://github.com/mikedehaan/poi-test

+0

Una menzione delle specifiche hardware potrebbe aiutare e le informazioni su come eseguirlo esattamente. – Marged

+0

Buon punto ... Aggiornamento ora. –

+0

Inoltre, si può scrivere quale sistema operativo è utilizzato in questo test? Windows, Linux? Quale versione? Per il problema della perfomance, a volte è più importante della versione jdk. –

risposta

7

I risultati dei test sulla mia macchina:

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

Specifiche macchina:

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

ho fatto profilatura e scoperto che XSSF è lento a causa dei metodi sincronizzati in xmlbeans e poi-ooxml-schemas librerie. Puoi avvisare gli sviluppatori e chiedere di controllare questo caso.

+2

Vedo risultati simili nei miei ambienti. Credo che tu abbia trovato la risposta. Ho condiviso queste informazioni sull'elenco utenti di apache poi. Spero che rispondano. Grazie! –