On Mon, 02 Apr 2001, you wrote:
> Setuju. Pas exit kan semua memory (stack+heap) di-free-kan otomatis sama
> MM-nya kernel (bener ya?), jadi kalo di-free() pas sebelum exit ya kayaknya
> redundant.
> 

sebenernya untuk kasus ini nggak papa sih, tapi "for the sake of tutorial",
sebaiknya jangan ah..  

Linux, Windows, dan hampir semua OS moderen yg. lain memang bakalan
memfree memory ketika suatu proses exit. Tapi nggak semua OS kelakuannya kayak
gini. Seinget saya bbr. OS (terutama yg. embedded/realtime OS) enggak, soalnya
OS-OS itu nggak mengenal konsep proses. Jadi _mungkin_ untuk OS-OS ini,
memory bakalan nggantung kalo nggak di-free. Sori nggak bisa ngasi tau lebih
spesifik, soalnya emang nggak terlalu pengalaman di bidang ini...

Trus lagi ada bbr. jenis memory yg. nggak otomatis di-free kalau program exit. 
Contohnya System V shared memory (man shmget). Kalau nggak salah sih shared 
memory itu bakalan dijaga terus di kernel meskipun proses exit(), sampai dia 
manually di free (man shmctl, man ipcs, man ipcrm) atau kernelnya di reboot.
Jadi nggak semua memory bakalan di free kalau proses exit().

Satu lagi, nanti kalau program membesar, pasti akan ada bug, dan salah satu bug
yg. sering muncul adalah memory leak. Kalau udah gitu, yg. kita lakukan adalah
men-trace memory leak itu dengan tools (misalnya Rational Purify, atau mbikin
sendiri juga bisa sih). Nah, dengan adanya malloc() yg. secara sengaja nggak di
free seperti itu, bakalan ngrusak output dari trace itu, soalnya ntar kita harus
mbedain mana memory yg. sengaja nggak di free, dan mana yg. merupakan bug.

> Biasanya org panggil free() kalo masih ada yg mau dikerjakan (belum exit)
> tapi juga mau ngirit memory dg membebaskan memory yg tadinya dialloc tapi
> sudah ndak dipake lagi. Ini terutama berguna utk long-running program
> seperti daemons. Actually Netscape should use more of it, too :)
> 

setuju (untuk kasus umum lho).

> Sorry kalo nit-picking :)
> 

saya lebih lagi kayaknya.. :-)

> Ronny
> 

--------------------------------------------------------------------------------
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3
Pengelola dapat dihubungi lewat [EMAIL PROTECTED]

Kirim email ke