当担心单线程应用程序的性能时,我应该禁用超线程吗?

当担心单线程应用程序的性能时,我应该禁用超线程吗?

我使用 i5-2410M 处理器,它在我的笔记本电脑上默认设置为执行超线程。考虑到这是一个 2 核处理器,这意味着它一次可以执行 4 个线程。这也意味着单线程应用程序最多只使用 25% 的处理能力,我宁愿让它们最多使用 50%。禁用超线程是否会产生不利影响(这是开发机器并运行桌面)?我还在读书吗top适当地?

答案1

对于单线程应用程序的超线程,如果您运行其中两个应用程序,您将看到速度的提升。超线程意味着 CPU 在第一个线程完成其正在执行的操作之前开始处理第二个线程(无论是来自多线程应用程序的两个线程还是两个单线程应用程序)。有效禁用此功能意味着您已将 CPU 容量削减一半(但不是真的,HT 会提高约 30%,但我说的是 top 告诉您的内容),这就是为什么线程现在显示为 50%而不是top25%。

更多解释:

然而,这并不意味着当今绝大多数应用程序不会从超线程中获益。只要多个应用程序同时运行(换句话说,多任务处理),即使是单线程应用程序也可以从超线程中获得性能优势。当一个应用程序将其流(线程)发送到一个逻辑处理器时,第二个应用程序同时将其流发送到第二个逻辑处理器。但是,如果您仅运行一个单线程应用程序,则超线程不会带来性能提升。事实上,由于与管理超线程的两个逻辑处理器相关的开销,在仅运行单线程应用程序时甚至可能会出现一些性能下降。

对于引导的 UNIX 系统,您至少运行内核、init 和 shell。你总是同时处理多项任务。在所有实际方面,HT 始终会让您受益。

相关内容