[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%