为什么采用多线程计算速度不升反降?
写个测试算法,纯计算型,无IO操作,内存操作微乎其微
在一个intel,双CPU,四核的PC上跑
一个线程,速度6000万, CPU 25%
两个线程,速度1000万 CPU 50%
四个线程,速度500万 CPU 100%
在一个16核的服务器上测试,结果同上边差不多,采用单线程多进程,速度提升和同进程个数基本成正比关系
用intel的编译器编译,结果无太大改观
线程之间无通信和数据同步问题,唯一同步是一个全局变量(int)用户计数
这个现象令我百思不解
哪位有经验的前辈能指导一下,什么情况下会产生这种现象?难道非要采用多进程架构去实现提取?