2010-12-13 8 views
1

Wie teuer ist ein natives OS-Thread? Das Host-Betriebssystem weist virtuellen Speicher für einen Thread-Stack und ein wenig Kernel-Speicher für die Thread-Kontrollstrukturen zu. Fehle ich etwas?Wie teuer sind Fäden?

+4

Es gibt keine Antwort - es variiert ziemlich weit zwischen den Betriebssystemen. –

Antwort

4

Es kann die Arbeitslast des Schedulers erhöhen, je nachdem, wie beschäftigt der Thread ist und welche Art von Scheduler. Es wird auch physischen Speicher für die erste Seite des Stapels zuweisen.

Die Hauptkosten in vielen Fällen ist Cache-Verschmutzung. Zu viele aktive gleichzeitige Tasks töten die Performance, weil zu viele Threads zu wenig Cache teilen und sie sich gegenseitig immer wieder in den Hauptspeicher schieben, was für einen Thread eine weitaus schlechtere Demütigung darstellt, als einfach nur eingeschlafen zu werden, seit er schläft es kommt zu einer einzigen Strafe von mehreren hundert Zyklen, während das Abrufen des Hauptspeichers während einer einzelnen Zeitscheibe einen ähnlichen Mehraufwand erfordert und auch proportional mehr Kontextwechsel bedeutet, da während dieser Zeitscheibe viel weniger Arbeit geleistet wird.

Verwandte Themen