05-12-2011, Monday-16:53:44
Zitat:Original von prissiBist du dir da sicher? Ich vermute, dass Windows nach jedem Prozesswechsel erneut entscheidet, auf welchem Kern der Thread ausgeführt wird. Natürlich hast du recht, es sollte mehr oder weniger egal sein, ob der Prozess dann auf dem ersten oder zweiten Kern aufgebaut wird, aber scheinbar versucht Windows, wenn ich einen Prozess an einen Kern binde, den ganzen Rest auf dem zweiten Kern aufzubauen, das würde dann ja das Neuaufbauen des L1-Caches und der Register ersparen (auch wenn das eigentlich verschwindend gering sein sollte, als ich noch Informatik studiert habe, hab ich in einer Vorlesung mal 100 Takte als Faustregel gehört).
Für die das Kopieren eines Bildes auf den Schirm nutzt allerdings Simutrans gerade den zweiten Prozessorkern. Insofern sollte mit Bindung an einen Kern alles eher langsamer werden. Außerdem transferiert Windows Prozesse eh nur zwischen Kernen, wenn ein Systemaufruf oder der KErnelinterrupt erfolgte. In beiden Fällen muss eh der Stack und die Register wieder hergestellt werden. Das sollte egal sein (mal von Level1 Caches abgesehen) auf welchem Kern das passiert. (Die Daten sollten ja im gemeinsamen Level 2/3 cache sein.)
Es kann aber auch sein, dass die subjektiv schlechtere Performance durch unregelmäßiges reagieren hervorgerufen wird, und das durch das Binden an einen Kern etwas stabilisiert wird.