2009-03-06 13 views
2

Wie hoch ist der Overhead eines Threads auf 64bit Windows? Ich glaube, es war 1 MB Userspace für den Stack und eine kleinere Menge an Kernel-Space in 32bit.64bit Thread Overhead

Dank

+0

Ferruccios Antwort ist korrekt, aber selbst wenn sie auf 1MB eingestellt ist. Das 1MB wird nicht sofort zugewiesen. Es wird nach Bedarf zugewiesen, wenn Ihr Stack verwendet wird. –

+0

Zur Verdeutlichung: Der Adressraum wird sofort zugewiesen, aber das physische RAM wird diesem Adressraum erst zugeordnet, wenn dies erforderlich ist. – Ferruccio

Antwort

3

Es kann sein, was auch immer Sie wollen. Mit der API CreateThread() können Sie die Stapelgröße festlegen. Wenn Sie es mit einer Stapelgröße von 0 aufrufen, wird der Stapel verwendet, der im Header der ausführbaren Datei definiert ist und über eine Linker-Option festgelegt werden kann. Der Standardwert (für beide x86 & x64-Systeme) beträgt 1 MB.