Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> C /C + + Programming >> .

Come aumentare la dimensione heap per il processo

Ogni programma che viene eseguito sul computer utilizza la memoria . Il "cumulo" è l'area di memoria utilizzata per l'allocazione dinamica della memoria . In un programma C , gli oggetti vengono posizionati sul " mucchio " , e built- in tipi di dati , come numero intero e lungo sono immessi sul "pila ". Lo stack è un piccolo, più veloce zona di memoria allocata da ultimo in, first out . Le variabili globali e statiche vengono memorizzati anche sul " mucchio " e rimangono in memoria fino a quando il programma completa . La dimensione del heap è un numero predefinito di pagine , tuttavia, più pagine possono essere assegnati al mucchio . Istruzioni
1

Ge la maniglia per il mucchio di default del processo chiamante all'interno del programma C che utilizzano " GetProcessHeap . " Definire una variabile per contenere il manico chiamato " hHandle . " Se " hHandle " è nullo , chiamare " GetLastError "per ottenere il messaggio di errore.
2

Uso di" hHandle " , chiamata " HeapAlloc " per allocare la memoria a heap quel processo ' . Serializzazione assicura che due thread non accedono allo stesso blocco di memoria , quindi, usare solo il parametro " HEAP_NO_SERIALIZE " quando l'applicazione ha un solo filo o l' applicazione gestisce le proprie chiamate filetto al mucchio di memoria . Sarà inoltre necessario per passare il numero di byte da destinare a " HeapAlloc . "
3

Usare " VirtualAlloc " per prenotare un blocco di pagine per il processo . È possibile effettuare ulteriori chiamate a " VirtualAlloc " a commettere singole pagine in modo da non consumare spazio di archiviazione fino a quando il processo in esecuzione ha bisogno it.To memoria allocate che è in default a zero e consente l'accesso alle regioni impegnate delle pagine di lettura /scrittura , tipo : DWORD dsize = 468178553 ; VirtualAlloc ( NULL , dsize , MEM_COMMIT , PAGE_READWRITE ) ;

 

Programmazione © www.354353.com