From: M.Atif CEYLAN (atifceylan@gmail.com)
Date: Thu 26 Apr 2007 - 12:49:49 EEST
herkese merhaba,
arkadaşlar C de yazdığım bir programda cok yoğun string işlemleri
kullanıyorum (10 larca mb lık dosyaları okuyup parse etmeye calışıyorum
ve bu işlemi periyodik olarak devamlı olarak yapıyorum). ancak
stringleri küçük parçalarda alıp her seferinde fonksiyona sokuyorum
mesela :
while (sart)
islemyap(str)//burada en fazla 2 KB datam var
islemyap(char *str)
char *a = (char*)malloc(256);
char *b = (char*)malloc(25);
a = str_temizle(sub_str(str,3,255));
b = str_temizle(sub_str(str,258,24));
........................
şeklinde devam eden islemyap benzeri 4 fonksiyonum var.
sorunum şu. fonksiyon sona erdiğinde ayrılan bellek alanları zaten
boşalır düşüncesi ile değişkenlerimi free etmiyorum.
ancak top cıktısı bir facia gibi adeta. her seferinde yükselen bir
bellek var önümde. bu durum, çekirdeğin ihtiyat için benim programın
ayırdığı bellek alanlarını tutması ile alakalı olabilir mi? yoksa
fonksiyonların sonunda free etsem mi? ama o kadar fazla değişkenim var
ki gözüm yemiyor daha kötüsü bazıları şartlara göre set edildiği için
free işlemlerinde de kontrole ihtiyac duyacağım.fikirlerinizi bekliyorum
iyi çalışmalar...
M.Atıf CEYLAN
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama