2011-10-24 45 views

回答

0

只是不。大多數情況下,當你認爲這會對事情有所幫助時,情況會變得更糟。

您放置在系統上的每一項限制都有成本。調度程序非常聰明,您對它施加的限制越多,執行的就越差。除非有充分的理由,否則調度程序不會將線程從一個核心移動到另一個核心。

+7

boost API有一個名爲native_handle的方法,它返回underlting posix線程。我在底層的posix線程上執行了所需的設置。 –

+0

我同意,不要爲普通應用程序執行此操作。 但是,您可能正在NUMA平臺(現在基本上是每個平臺)上編寫高性能服務。在這種情況下,爲某些線程設置處理器關聯可能是一個勝利。你想從最靠近PCI總線的節點進行網絡讀取/寫入,其上有NIC等。 這就是說,是的,成本很高;這是在你的時間和勞動。您必須調整特定的硬件配置,並在底層硬件更改或驅動程序得到更新或操作系統修補時隨時運行迴歸。 – paxos1977

-2

在.NET應用程序的情況下,可能需要看看ProcessorAffinity

MSDN 1 MSDN 2 Wiki

+0

我在linux工作,使用GNU編譯器,但無論如何感謝。 –

相關問題