>Masalah masih ada memori yang nggak mau turun, ini disebabkan oleh
>alokasi memori dari implementasi std::list atau std::vector itu sendiri.
>Untuk alasan optimasi performansi, ruang memori yang dialokasikan
>(misalnya dengan "new", dipanggil dari std::list) tidak serta merta
>dibebaskan begitu terkena "delete". Jadi ada semacam pool statik yang
>digunakan bersama-sama.
>Kesimpulan: tidak usah khawatir karena pool memori tersebut akan diklaim
>balik oleh sistem operasi saat exit.
Makasih Pak Ariya,
Nampaknya memang seperti itu, saya tanyakan ke milist tetangga juga jawabannya
kira-kira sama.
Saya coba test dengan looping allocate deallocate memorynya tidak naik, seeprti wibawah
while(true){
for(int i=0; i<10000; i++){
char* p = (char*)malloc(1024);
memset(p, 'x', 1024);
clist.push_back(p);
}
printf("enter d to deallocate: ");
scanf("%c", &c);
scanf("%c", &c);
CHAR_LIST::iterator it;
int n = 0;
for(it = clist.begin(); it != clist.end(); it++){
n++;
free(*it);
}
clist.clear();
usleep(1);
}
tetapi aneh saja ya...karena aku tadinya khawatir ini sebagai memory leak
tapi nampaknya ini lebih tampak sebagai managemen memory di linux
sehingga ketika memory ini dibutuhkan lagi akan cepat untuk menyediakannya.
sekali lagi makasih ya
salam
IK
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]