|
lz朋友说的没错,但是lz总结出来的可以说是完全错误.
另外关于微机那段文章的言论,虽说有问题,但是也不能说完全错误.
原因是HT虽说是在一个物理核心上模拟出来2个并行运行的线程,但这种模拟在某些情况下也是与真正的多核并发线程有不同的.非但速度上有区别,有时在HT的两个线程上无法并发执行某些种类的语句,而多核就没有限制.
所以在软件上作一些调整,会使在HT上效率更好,笼统说成针对HT"优化"也可以.举个例子Windows本身在任务调度上是首先找寻空闲的物理核心,不存在空闲的物理核心时才去找逻辑核心,这样就能避免某些效率上的问题.另外有一些高优先级的IRQL则只能在物理核心上执行,不可能被调度到逻辑核心去,也是有这方面的考虑.把这种设计思路看成"优化"想起来也没什么不妥吧.另外一个反例是某些老的类Unix系统,例如BSD,把HT和多核统统用SMP来处理,造成在HTCPU上执行效率不高,有时甚至打开HT只能带来响应时间改善,而整体性能甚至稍有下降,这称作"没有优化"也无问题吧.
不过所谓的软件优化基本上只能在操作系统层面实现,在应用程序方面只要编写程序使用了多线程就可以了,应用程序无法得知它的线程将会跑在什么类型的核心上,也就无从优化,这方面微机这段话是不对的,仅此而已. |
|