只在弹指间"/>
性能只在弹指间
离开项目ES有一段时间里了,但时时牵挂的导入问题在今天才得到解决。项目ES中的导入操作业务数据量并不大,多数情况下导入在30条以内的数据量,在部署到测试环境后,发现导入1条数据居然用了10秒,导入21条数据也用了10秒。
本地环境测试,21条的导入时间为5.281秒,使用JProbe对导入时的内存分析并优化后,时间为3.203秒,调整程序结构后最优化为1.91秒,其中数据库操作使用了1.515秒,我认为已经可以接受,更新到测试环境在导入,时间依旧是10秒左右。
加入调试信息查看日志,跟踪到在创建Excel WorkBook对象用时9秒,怀疑是否IO出现问题。刚好当天同一服务器上的项目L应用当机并且每次耗尽内存,疑似问题相关,由于当天是我在项目ES工作的最后一天,把问题交接给同事L后,由同事L跟进。
开始项目H工作后依然牵挂该导入性能问题,项目L当机问题已经接近,询问同事L情况依旧。恰巧项目H也有导入的功能,而且导入使用的同一组件,马上询问组件负责人员LZ,发现原来使用的jxl包不是最新版本,导致问题出现的是jxl中创建Excel WorkBook对象时进行了gc(),后悔莫及,当初为什么没有继续追寻下去,同事L还一头雾水,马上联系同事L进行包更新,回馈问题解决。
细节决定成败,这个问题的解决方法本可以被我捕获,没有坚持,失去了机会,又是一个教训。
更多推荐
性能只在弹指间
发布评论