发表于: 2017-09-04 21:11:10

3 979


1.调整项目结构,像之前师兄说的那样将类分配到各个包中。项目结构图:

2.写了一个最简单的主类,单线程for循环100万次,每次循环生成1个随机学生数据,然后插入到数据库中。耗时1927.1秒。

3.优化1:通过批处理函数将数据插入数据库。效果:耗时1748.7秒,有所提升,但并不明显。(这里很奇怪,为什么和说好的不一样。。我看别人都说用批处理可以把性能提升一个数量级的。。)

先到此为止了,后面的明天再测试,插入数据实在太慢了,数据量少又看不出效果,扛不住了,去睡觉了→_→

4.优化2:通过多线程,同时执行多个生成数据并插入的操作

问题1:多个线程执行数据库操作的话,会不会出问题?

答:只要不让多个线程使用同一个链接就行。另外,线程数不要超过数据库连接池的最大连接数。

问题2:而且如果CPU核数不多(甚至是单核),多个线程执行同一个操作,似乎并没有什么意义?

答:对于多核CPU,显然多线程比单线程有优势,CPU的每个核心可以分别执行一个线程。

对于单核CPU而言,如果不存在阻塞,所有部分都可以独立顺利执行,那么多线程不仅不会提高性能,还会降低性能;但是如果存在阻塞,那么多线程就有明显优势了:被阻塞的线程不会影响其他线程的执行。

并且,多线程可以提供编程便利性(逻辑独立性)【这点暂时不太理解】

待测试。


5.优化3:通过生产者-消费者模式,一部分线程生成学生数据,一部分线程将数据插入数据库

待测试。


6.CPU数量固定时,线程数量对效率的影响?

待测试。


返回列表 返回列表
评论

    分享到