首页 \ 问答 \ Apache POI性能(Apache POI Performance)

Apache POI性能(Apache POI Performance)

我遇到了Apache POI的性能问题。 我已经阅读了它提到性能测试的FAQ。 我已经通过注销和4gb堆运行了这个测试,并且我无法让测试运行速度超过22秒。

这是我正在运行的测试: http : //svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/ss/examples/SSPerformanceTest.java

常见问题解答表示,如果我不能在3秒内以50,000行和50列的速度运行“这个问题与您的环境相关”的测试。 我读过关于禁用poi日志记录和增加堆大小的其他评论,但似乎没有任何帮助。

我还能检查什么来修复我的环境?

机器规格(个人台式机):

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 jar来自maven central

我在github上创建了一个测试项目,你可以简单地克隆项目并运行:

mvn exec:java

我硬编码我正在使用的参数,所以你不必输入任何特殊的命令行。 文件说这应该在3秒内运行。

测试项目位于: https//github.com/mikedehaan/poi-test


I'm having performance problems with Apache POI. I've read the FAQ where it refers to a performance test. I've run this test with logging off and 4gb of heap and I can't get the tests to run faster than 22 seconds.

This is the test I'm running: http://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/ss/examples/SSPerformanceTest.java

The FAQ says that if I can't get this test to run in under 3 seconds with 50,000 rows and 50 columns that "the problem is with your environment". I've read other comments around the web referring to disabling poi logging and increasing the heap size, but nothing seems to help.

What else can I check to fix my environment?

Machine Specs (Personal desktop machine):

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

I should also mention that the Apache POI jars I'm using came from maven central

I've created a test project on github where you can simply clone the project and run:

mvn exec:java

I hard coded the parameters I'm using so you do not have to enter anything special on the command line. The documentation says this should run in under 3 seconds.

The test project is located here: https://github.com/mikedehaan/poi-test


原文:https://stackoverflow.com/questions/34246083
更新时间:2021-11-08 10:11

最满意答案

HTML5工作人员掌握的专业技术:

前端页面重构:PC端网站布局、HTML5+CSS3基础项目、WebAPP页面布局;
JavaScript高级程序设计:原生JavaScript交互功能开发、面向对象开发与ES5/ES6、JavaScript工具库自主研发;
PC端全栈项目开发:jQuery经典特效交互开发、HTTP协议,Ajxa进阶与后端开发、前端工程化与模块化应用、PC端网站开发、PC端管理信息系统前端开发;
移动端项目开发:Touch端项目、微信场景项目、应用Vue.js开发WebApp项目、应用Ionic开发WebApp项目、应用React.js开发WebApp;
混合(Hybrid)开发:各类混合应用开发;
NodeJS全栈开发:WebApp后端系统开发。

其他回答

主要需要掌握以下知识点:

首先,了解html5可以实现的功能有哪儿些?
1.  html5可以同时在多种设备上运行,这是其他方式都无法做到的;
2.  在互联网中随意被分享,并且搜索时可以及时被找到;
3.  html5应用可以使用交互式设计来提供最佳体验,而不需要更改代码。你可以从桌面到手机到平板电脑无缝进行切换,而无需重复安装不同的应用;
4.  html5适用于多厂商标准,建立在协议之上,是众多公司努力的结果。
其次,了解一下html5主要有哪些特征?
1.  html5有本地存储的特征,基于html5开发的网页app拥有更短的启动时间,更快的联网速度,这些全得益于html5 app cache,以及本地存储功能。
2.  利用html5非常方便的在网页上添加视频和音频,不需要很复杂的代码,就能打造一款功能齐全的html5播放器。
3.  css3的使用可以提供更多的css属性,可以制作更加丰富的渲染效果。
除了以上基本知识点以外,还需要掌握:html5的前端技术也是必备的,其中包括:css、html、dom、javascript、ajax,jquery,vue,jquery- mobile,zepto等,在掌握这些技术的同时,还要清楚地了解它们在不同浏览器上的兼容情况、渲染原理以及存在的各种bug。

相关问答

更多
  • HTML5是用于取代1999年所制定的 HTML 4.01 和 XHTML 1.0 标准的 HTML 标准版本,现在仍处于发展阶段,但大部分浏览器已经支持某些 HTML5 技术。HTML 5有两大特点:首先,强化了 Web 网页的表现性能。其次,追加了本地数据库等 Web 应用的功能。广义论及HTML5时,实际指的是包括HTML、CSS和JavaScript在内的一套技术组合。它希望能够减少浏览器对于需要插件的丰富性网络应用服务(plug-in-based rich internet application ...
  • 可以看看《Linux就该这么学》,如有需要,可以发你邮箱。
  • HTML5相对比较简单,零基础也可以学的,不需要什么基础的。想入门,首先要了解HTML5要学哪些知识,清楚学习路线,可以找一个专业的学校去学
  • 还是同学建议到千锋官网下载的。
  • 首先,永远不要用《从入门到精通》那种书学习,当字典差不多,用于自学,那就准备《从入门到放弃》吧~~~ 然后嘛,HTML5本身由不同的语言组成,是HTML+CSS+JavaScript,三种语言各自有各自的特点,HTML与CSS,属于结构和样式,就是做网页布局,JS是逻辑层面,脚本语言。 结构样式方面,比较推荐当前比较新的书籍,比如《HTML5布局之路》,很详细的讲解了布局知识,还提供了相关的项目经验以及面试题。 JS方面,权威方面的书籍是《高级JavaScript程序设计》和《JS犀牛书》,但是这两本都比较 ...
  • HTML5入门到精通可以分为3个阶段:了解HTML5、熟练掌握HTML5、精通HTML5; HTML5此处指的是HTML、CSS、JavaScript以及HTML5和CSS3(新增的) 首先了解HTML5 需要去了解HTML5是什么,HTML5能够做什么以及HTML5行业的状况,然后在已了解的基础上发掘自己是否喜欢HTML5这个职业,才去决定自己是否学习HTML5。 大概时间:2~3天 其次熟练掌握HTML5 先学习HTML与CSS 在一些机构培训当中,全日制,每天学8个小时,也需要学习1~1.5个月,而且 ...
  • 技术类的东西是没有时间规定的,要通过自己的努力不断学习才可以。学习方法有三种方式供你选择:一种是自学,当然你要有些基础还要有不错的学习能力及自制力。一种是报班学习,这个是学的最快的但是需要教学费。还有一种是线上学习,这个需要找到不错的视频教程,你想学的话可以看看扣丁学堂的教程。以上三种供你选择,祝你好运。
  • 如果是参加培训学习的话,一般都是四个月就可以入门了,精通就要看自己学习情况了,找到学习方法,不断学习提升自己,进阶也很容易。
  • HTML5工作人员掌握的专业技术: 前端页面重构:PC端网站布局、HTML5+CSS3基础项目、WebAPP页面布局; JavaScript高级程序设计:原生JavaScript交互功能开发、面向对象开发与ES5/ES6、JavaScript工具库自主研发; PC端全栈项目开发:jQuery经典特效交互开发、HTTP协议,Ajxa进阶与后端开发、前端工程化与模块化应用、PC端网站开发、PC端管理信息系统前端开发; 移动端项目开发:Touch端项目、微信场景项目、应用Vue.js开发WebApp项目、应用Io ...

相关文章

更多

最新问答

更多
  • 如何在Laravel 5.2中使用paginate与关系?(How to use paginate with relationships in Laravel 5.2?)
  • linux的常用命令干什么用的
  • 由于有四个新控制器,Auth刀片是否有任何变化?(Are there any changes in Auth blades due to four new controllers?)
  • 如何交换返回集中的行?(How to swap rows in a return set?)
  • 在ios 7中的UITableView部分周围绘制边界线(draw borderline around UITableView section in ios 7)
  • 使用Boost.Spirit Qi和Lex时的空白队长(Whitespace skipper when using Boost.Spirit Qi and Lex)
  • Java中的不可变类(Immutable class in Java)
  • WordPress发布查询(WordPress post query)
  • 如何在关系数据库中存储与IPv6兼容的地址(How to store IPv6-compatible address in a relational database)
  • 是否可以检查对象值的条件并返回密钥?(Is it possible to check the condition of a value of an object and JUST return the key?)
  • GEP分段错误LLVM C ++ API(GEP segmentation fault LLVM C++ API)
  • 绑定属性设置器未被调用(Bound Property Setter not getting Called)
  • linux ubuntu14.04版没有那个文件或目录
  • 如何使用JSF EL表达式在param中迭代变量(How to iterate over variable in param using JSF EL expression)
  • 是否有可能在WPF中的一个单独的进程中隔离一些控件?(Is it possible to isolate some controls in a separate process in WPF?)
  • 使用Python 2.7的MSI安装的默认安装目录是什么?(What is the default installation directory with an MSI install of Python 2.7?)
  • 寻求多次出现的表达式(Seeking for more than one occurrence of an expression)
  • ckeditor config.protectedSource不适用于editor.insertHtml上的html元素属性(ckeditor config.protectedSource dont work for html element attributes on editor.insertHtml)
  • linux只知道文件名,不知道在哪个目录,怎么找到文件所在目录
  • Actionscript:检查字符串是否包含域或子域(Actionscript: check if string contains domain or subdomain)
  • 将CouchDB与AJAX一起使用是否安全?(Is it safe to use CouchDB with AJAX?)
  • 懒惰地初始化AutoMapper(Lazily initializing AutoMapper)
  • 使用hasclass为多个div与一个按钮问题(using hasclass for multiple divs with one button Problems)
  • Windows Phone 7:检查资源是否存在(Windows Phone 7: Check If Resource Exists)
  • 无法在新线程中从FREContext调用getActivity()?(Can't call getActivity() from FREContext in a new thread?)
  • 在Alpine上升级到postgres96(/ usr / bin / pg_dump:没有这样的文件或目录)(Upgrade to postgres96 on Alpine (/usr/bin/pg_dump: No such file or directory))
  • 如何按部门显示报告(How to display a report by Department wise)
  • Facebook墙贴在需要访问令牌密钥后无法正常工作(Facebook wall post not working after access token key required)
  • Javascript - 如何在不擦除输入的情况下更改标签的innerText(Javascript - how to change innerText of label while not wiping out the input)
  • WooCommerce / WordPress - 不显示具有特定标题的产品(WooCommerce/WordPress - Products with specific titles are not displayed)