日期:2014-05-19  浏览次数:20789 次

[100分] 菜鸟有问 ,怎样编写代码才能发挥出多核心芯片的性能,之类的吧
这个问题问在了C#区,大家海涵

第一个疑问:
    我现在用的是双核处理器,跑那种没做多核心处理的程序不会出现只有一个核心在工作的情况
    那说明操作系统已经分散处理了阿,那么我们为什么要自己处理多核问题呢?

第二个疑问:
    是不是多线程就能发挥出多核芯片的性能?
    那么是不是猛开线程就行了?
    还是双核芯片最适合两个线程?三核就是三线程?

第三个疑问:
    VS   2005   编译器有没有对多核心处理器上有优化?

第四个疑问:
    有没有明确的方式指定某线程去某核心计算?应该是操作系统的事情吧?

问题可能比较幼稚比较盲目,但是这都是我现在最内心的疑问,表达能力有限,兄弟们解答、探讨一下。

------解决方案--------------------
多核性能的发挥应该是操作系统层面的事情吧
------解决方案--------------------
呵呵,奇怪的问题,帮你顶
------解决方案--------------------
不晓得,你去Intel区看看吧,那帮人天天在为快那么个0.0s而忙碌着,各种优化手段玩的不亦乐乎
动不动就配置编译器
------解决方案--------------------
记得我笔试Intel的一道题就是xx在a机器上编译了一个最优程序,放到cpu不同的b机器上是否需要重新编译,为什么
-_-#
------解决方案--------------------
这个应该是M$该烦的事... .net可是居于托管代码的~~
------解决方案--------------------
1、一个线程只能在一个核上跑。系统并没有做什么分散处理。
2、在多核上用多线程性能会提高很多,但线程不是越多越好,像我以前用C++做IOCP的时候开的线程是(核数量×2+2)。
3、这个没研究过。
4、应用程序没有控制线程跑哪个核的权限,这是系统的工作。
5、是的。
------解决方案--------------------
Up一下
------解决方案--------------------
适量就好...

不用动不动就猛开的...
------解决方案--------------------
程序员杂志 2007.4 有一个专题 关于多核的
------解决方案--------------------
我也想知道这个问题,如果我开一个线程不断的运行1+1,在我的机器上CPU每次只能占用50%左右
在其他单核的机器上就是100%