我写了一个多线程解析excel的jar包,单独执行的时间30秒,放在项目中执行需要90s
我是在jar中统计的时间
不是内存的原因
请各位帮我分析一下什么因素会影响执行时间
这个就很底层了,谁能说得清楚
但是,你可以这样验证一下
在你的项目环境中,重新启一个线程,计算1到100000的加法。
统计时间,然后再开一个JVM实例,同样的计算,但是这次开5000个线程,什么都不做。
你试一下,绝对第一个最浪费时间,这个不需要了解太清楚,知道大概为什么就行了。
一个单独一个在项目中 明显有差距
当然有很大的差距了
假如你解析excel的多线程为5条,放在项目中,其他线程是5条,一共就是10条线程。
一个CPU在5条线程执行快还是10条块呢?,显而易见的吧。
还有种可能就是,你在jar中统计的时间,那么多余的时间可能就是CPU来回切换线程花费的。
5000个线程和你项目中的线程是同样的工作量吗?
如果我启动5000个线程什么都不做,而我启动10个线程循环执行数据处理,这工作量不可同日而语