Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako zvýšiť haldy veľkosť pre proces

Každý program , ktorý beží na vašom počítači používa pamäť . " Haldy " je oblasť pamäti používa pre dynamické prideľovanie pamäte . V programe C , objekty sú umiestnené na " hromadu " , a vstavané dátové typy , ako je celé číslo a dlho sú umiestnené na " zásobníka . " Stack je menšie, rýchlejšie oblasť pamäti , ktorá je pridelená posledná in , first out . Globálne a statické premenné sú tiež uložené na " hromadu " a zostanú v pamäti až do ukončenia programu . Veľkosť haldy je preddefinovaný počet stránok, ale viac strán môžu byť pridelené do haldy . Návod dovolená 1

Ge rukoväť na predvolenej haldy volajúceho procesu v rámci svojho programu C pomocou " GetProcessHeap . " Definujte premennú držať rukoväť s názvom " hHandle . " Ak je " hHandle " je null , hovoria " GetLastError " dostať správu zlyhanie .
2

Pomocou " hHandle " , hovoria " HeapAlloc " alokovať pamäť k tomuto procesu " haldy . Serializácie zaisťuje , že dve vlákna nemajú prístup k rovnakému blok pamäti , preto používajte iba parameter " HEAP_NO_SERIALIZE " , keď aplikácia má iba jeden závit alebo aplikácia spracováva svoje vlastné vlákno volanie do pamäte haldy . Budete tiež musieť prejsť počet bajtov prideliť " HeapAlloc . "
3

Použite " VirtualAlloc " vyhradiť blok stránok pre proces . Môžete vykonať ďalšie volanie " VirtualAlloc " , aby sa zaviazali jednotlivé stránky tak , aby konzumovať úložný priestor až do chodu proces musí it.To alokovať pamäť , ktorá je v omeškaní s platbou na nulu a umožňuje prístup čítanie /zápis k zapojenými regiónmi týchto stránok , typ : DWORD dsize = 468178553 ; VirtualAlloc ( NULL , dsize , MEM_COMMIT , PAGE_READWRITE ) ;

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené