版本2.2.20
我在导出一个5万行的excel时,有20个列,用时在7秒左右。
通过火焰图分析,发现有大量时间(1.6秒左右)卡在了
addJavaObjectToExcel方法的beanMap.containsKey(name)上
而这个beanMap.containsKey会交给net.sf.cglib.beans.FixedKeySet类执行
而FixedKeySet并没有重写contains方法,所以其实际上会被交给AbstractCollection的contains方法执行比较。
导致了o(n)的复杂度。
解决办法:
想个办法把FixedKeySet类替换掉
经过测试 替换后的导出时间由7秒降低到了4秒左右
1条答案
按热度按时间nhjlsmyf1#