Java、Scala和Go语言多线程并发对比测试

本文试图记录下对流行的Java、Scala和Go语言多线程并发对比测试,做为将来项目选择开发语言的一个参考。
具体的语言对比测试包括:
1)java+concurrent包;
2)java+AKKA1.3包;
3)java+AKKA2.0包;
4)Scala+ AKKA1.3包; 
5)Scala+ AKKA2.0包; 
6) Go+goroutine 
比对目标:一、性能对比;二、编码难易程度对比。

测试的例子:
一、对1~N的天然数里面统计有多少个质数。采用的算法是把1~N个天然数划分红多个数据段,而后交给多个子线程去分别累加,最后汇总各个子线程的总数。这样,能够充分利用多核的强大功能来加速程序的统计。从理论上看,这个例子是CPU资源敏感型的多线程例子。CPU资源越多,程序跑的就越快。例如,双核的状况下,程序所花时间是单核的一半左右。


因为个人资源有限,只搞了3个测试环境,以下:
测试环境(一):java

一、硬件环境:AMD双核2.8G,4G内存
二、软件环境:winxp,JDK1.7,Scala2.91,AKKA1.3, AKKA2.0,GO1,

算法

测试环境(二):多线程

一、硬件环境:INTEL酷睿双核2.4G,4G内存
二、软件环境:winxp,JDK1.7,Scala2.91,AKKA1.3, AKKA2.0,GO1,

并发

测试环境(三):性能

一、硬件环境: INTEL酷睿 2.4G,4G内存
二、软件环境:MAC OS,JDK1.7,Scala2.91,AKKA1.3, AKKA2.0,GO1,

今早,刚刚完成相关代码编写和初步测试工做。后面还须要把相关的代码部署到3个不一样的测试环境里面进行测试,并写出相关的测试报告。

.........................................
测试结果已经出来了,由于太长,就放到下一篇文章里。点击 测试

Java、Scala和Go语言多线程并发对比测试结果和结论

相关文章
相关标签/搜索