回答

1

我看不出有这种情况。

请记住,任何启用了多处理器的操作系统都会自动分配处理器时间,因为它认为适合尝试平衡处理器负载。

这意味着,实际上,根据线程优先级,您正在运行的任何进程线程将不断中断,以便操作系统可以将处理器时间分配给其他进程。同一线程内的单个计算甚至可能不会在同一个处理器上执行。

如果您修复了只在一个指定处理器上运行的进程代码,那么这可能会妨碍其性能,因为它不允许操作系统平衡处理器负载。

我想你可以把它的大部分作为关键部分,但是这会阻碍你在其他领域的应用,特别是处理任何子线程。

0

至少在理论上,似乎有可能通过让线程在不同内核之间弹跳来降低系统性能。由于许多多核设计为每个内核都包含单独的L1高速缓存,因此,只要线程移动到新内核,线程之前访问的任何数据都不会再缓存到新内核中,而必须从更高级别的缓存中获取(或记忆)。保持线程运行在相同的内核上将增加L1缓存具有与线程正在做什么相关的数据的可能性。当然,这个影响有多大取决于其他因素,比如缓存的大小以及核心上“同时”调度了多少其他线程。

+0

除非实际上每个内核运行一个线程(这似乎不太可能),那么交换内核的效果将与在同一内核上切换上下文的效果非常相似。 – 2009-07-09 18:27:50

相关问题