Quelques notes suite au débat commencé sur mozilla.dev.performance :
http://groups.google.fr/group/mozilla.dev.performance/msg/972b39fc67855a78

Doc VirtualFree :
http://msdn2.microsoft.com/en-us/library/aa366892.aspx
Doc VirtualAlloc :
http://msdn2.microsoft.com/en-us/library/aa366887.aspx
On peut pour utiliser cela réécrire new/delete :
void * operator new( unsigned int cb ){ return LocalAlloc(LPTR, cb); // VirtualAlloc}
void operator delete(void *block) { LocalFree(block);}

Au fait pour un gc (il peut ainsi suivre les pages modifiées et reparcourir seulement celles-là):

MEM_WRITE_WATCH
0x200000

Causes the system to track pages that are written to in the allocated region. If you specify this value, you must also specify MEM_RESERVE.

To retrieve the addresses of the pages that have been written to since the region was allocated or the write-tracking state was reset, call the GetWriteWatch function. To reset the write-tracking state, call GetWriteWatch or ResetWriteWatch. The write-tracking feature remains enabled for the memory region until the region is freed.

Quelques projets manipule VirtualAlloc directement de cette manière :
XboxMediaCenter (XBMC) :
http://www.koders.com/cpp/fid72F86BACD333D5ECCF67204AED518CD4E2EC1EF7.aspx?s=%22MEM_RESET%22

QuakeForge :
http://www.koders.com/objectivec/fidCF668E7B1227B54D8297FAC257DA16871AE18962.aspx?s=virtualalloc
En fait, cela vient d’un répertoire rhapsody (nom de code de MacOSX) en Objective C …

PW32 the Posix-over-Win32 layer(pw32) l’utilise pour implémenter brk :
http://www.koders.com/c/fid310B897C7BB5D1AD2B552F90902DAE8C1E68EF59.aspx?s=virtualalloc

Un blog windows qui documente les détails de la gestion de mémoire virtuelle :
http://blogs.msdn.com/slavao/archive/2005/01/27/361678.aspx
Utilisé ici pour scripter un rapport d’utilisation :
http://blogs.jetbrains.com/yole/archives/000034.html

Sous Linux, faire l’équivalent avec mmap :
http://www.developpez.net/forums/showthread.php?t=305983