2015-12-12 3 views
8

У меня проблемы с производительностью с POI Apache. Я читал FAQ, где он относится к тесту производительности. Я проверил этот тест с отключением и 4gb кучи, и я не могу заставить тесты работать быстрее, чем 22 секунды.Apache POI Performance

Это испытание я бегу: http://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/ss/examples/SSPerformanceTest.java

FAQ говорит, что если я не могу получить этот тест, чтобы работать менее чем за 3 секунды с 50000 строк и 50 столбцов, что «проблема с вашим Окружающая среда". Я читал другие комментарии по сети, ссылаясь на то, что отключил ведение журнала и увеличил размер кучи, но ничего не помогает.

Что еще я могу проверить, чтобы исправить мою среду?

машина функция (персональный настольный компьютер):

 
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 

Я должен также упомянуть, что банки Apache POI, я использую пришли из maven central

Я создал тестовый проект на GitHub, где вы может просто клонировать проект и запустить:

mvn exec:java

Я жёстко параметры я использую, так что вам не придется вводить ничего особенного в командной строке , В документации говорится, что это должно длиться менее 3 секунд.

Тестовый проект находится здесь: https://github.com/mikedehaan/poi-test

+0

Упоминание о технических характеристиках оборудования может помочь и информация о том, как именно вы запускаете это. – Marged

+0

Хорошая точка ... Обновление сейчас. –

+0

Также вы можете написать, какие ОС используются в этом тесте? Windows, Linux? Какая версия? Что касается производительности, иногда это важнее, чем версия jdk. –

ответ

7

Результаты тестов на моей машине:

  • HSSF: 2 сек
  • SXSSF: 5 сек
  • XSSF: 27 сек

Технические характеристики машины:

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

я сделал профилирование и выяснил, что XSSF медленно из-за синхронизированные методы в xmlbeans и poi-ooxml-schemas библиотек. Вы можете уведомить разработчиков poi и попросить проверить это дело.

+2

Я вижу похожие результаты в своей среде. Я считаю, что вы нашли ответ. Я поделился этой информацией с списком пользователей apache poi. Надеюсь, они ответят. Спасибо! –