你说的和我的矛盾吗?
如果你的程序优化很好,系统负载也满了,自然同一核上的两个HT线程会争强资源,但是并没有降低总体性能,因为显然功能单元处于更忙的状态流水线更满了
HT能加速的是两个使用不同功能单元的线程的情况,假如两个线程都算浮点或者都在load/store那显然难以被加速。这是程序设计的问题,应该尽量把线程拆成使用不同功能单元的,而不是让他们为争强功能单元打架。
你说的低优先级线程被调度到高优先级线程统一核上从而影响高优先级线程,这也是程序设计问题或者是操作系统调度的问题。
【 在 hgoldfish 的大作中提到: 】
:
: 你讲的是总是性能。但对于普通桌面最重要的单线程性能并没有提升。反而因为使用了超线程以后,原本独占 CPU 的那个线程,现在却随时可能被分走计算资源,导致计算时长更长了。
:
: 举个例子,你现在有三个高优先级的任务,五个低优先级的任务,他们都被唤醒了。你的 CPU 是双核四线程。如果没有超线程,操作系统就会只调度三个高优先级的任务,剩下五个低优先级的会等这三个执行完才被调度到。但使用了超线程以后,剩下五个高优先级任务也会被调度。此时可以观察到三个高优先级任务的性能被影响了。
:
#发自zSMTH@NOP-AN00
--
FROM 116.224.250.*