Quanta memoria fisica viene consumata dallo stack di un thread .NET?

2

Nell'articolo di Stephen Cleary sulla rivista MSDN " Introduzione a Async / Attendi su ASP.NET "Dice che" ogni thread thread thread su un sistema operativo moderno ha uno stack da 1 MB. " (OS moderno == Windows 7/8 per questa discussione) Ma pensavo che questo fosse 1MB di memoria virtuale e che la memoria fisica fosse allocata dinamicamente man mano che lo stack cresceva. Basandomi sulla conoscenza datata del threading C ++ su altri sistemi operativi, credo che le dimensioni effettive dello stack superino raramente i 64k, specialmente nelle lingue che fanno un uso pesante dell'heap come .NET.

Windows assegna 1 MB di memoria fisica o lo stack assegna dinamicamente più memoria se necessario? Forse è più economico allocare tutto in anticipo ora e fare affidamento su come scambiarlo se necessario? Stavo andando a testare questo usando il profiler ma non vedo come ottenere la dimensione dello stack da esso.

    
posta Moby Disk 12.02.2015 - 16:00
fonte

1 risposta

1

collegamento Robert Harvey aggiunto come commento lo spiega in modo più esplicito, ma, per impostazione predefinita, Windows assegna 1MB di memoria virtuale che viene impegnata come memoria fisica secondo necessità (come descritto).

    
risposta data 18.02.2015 - 03:48
fonte

Leggi altre domande sui tag