Selamlar;
delphi nin kaynak kullanımı (bilgisayar kaynakları) hakkında kısa bilgilere ihtiyacım var
hala bazı şeyleri kafamda oturtamadım.
örneğin procedureler
2 tane formumuzun olduğu bir uygulama olsun (form1 ve form2)
form iki de bir procedure olsun (showmessage ile basıt bir mesaj yayınlayan)
form 1 de de iki buton olsun (buton bir form 2 yi onshow (önce creat esin) yapsın - buton 2 form ikiyi create yapıp procedure yi çağırsın ve form 2 yi free etsin)
şimdi projeyi derlediğimizde ve çalıştırdığımızda 700 kb bellek kullandığını görüyoruz (örnek bir rakam)
form ikiyi aktif yapınca (buton 1 ) bellek kullanımı 750 kb a çıkıyor. form 2 yi kapatınca (cafree) bellek kullanılı yeniden 700 kb a iniyor (burada sorun yok)
ancak ikinci butona basıp form 2 yi create edip sadece proceduru çalıştırıp, form 2 yi free edersek 780 kb da kalıyor bellek kullanımı.
şimdi benim anladığım formlar free ediliyor ama çalıştırılan procedureler bir defa çalıştırılınca bir daha kullanılan kaynaklar geri verilemiyor sisteme?
yada ben birşeyi eksik yapıyorum. bu mantıkla ne yaparsam yapayım yazdığım uygulamada git gide kaynak kullanımı artıyor. 5.000 kb ile başlayan program 5800 lere çıkıyor filan.
delphi ve bileşenlerinin (procedure-function-local değişkenler- global değişkenler vb) sistem kaynaklarının nasıl kullanıldığını anlatan bir makale -yazı varsa ve paylaşırsanız çok sevinirim.
Delphi ve Kaynak Kullanımı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Delphi ve Kaynak Kullanımı
Understanding and Preventing Memory Leaks
http://delphi.about.com/od/oopindelphi/a/memoryleak.htm
Delphi'nin hangi sürümünü kullanıyorsunuz? Memory Manager olarak FastMM kullanırsanız programdan çıkarken Memory kaçağı varsa sizi bilgilendiriyor.
http://delphi.about.com/od/oopindelphi/a/memoryleak.htm
Delphi'nin hangi sürümünü kullanıyorsunuz? Memory Manager olarak FastMM kullanırsanız programdan çıkarken Memory kaçağı varsa sizi bilgilendiriyor.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Re: Delphi ve Kaynak Kullanımı
delphi 7 enterprise ı kullanıyorum.
Re: Delphi ve Kaynak Kullanımı
1. http://sourceforge.net/projects/fastmm/ adresinden FastMM i indirin.
2. Bir klasöre kopyalayın.
3. Delphi'nin "Tools > Environment Options > Library > Library Path" listesine FastMM in bulunduğu klasörü ekleyin.
4. Son olarak projenizin dpr dosyasının uses bölünün ilk satırına FastMM unit ini ekleyin.
Bundan sonra projeniz Memory Manager olarak Borland'ın orijinal bellek yöneticisi yerine FastMM bellek yöneticisini kullanacaktır. Zaten Borland/CodeGear/Embarcadero, Delphi'nin 2006 sürümünden sonra kendi bellek yöneticisi yerine FastMM i kullanmıştır. O yüzden Delphi 2006 ve sonraki sürümlerde bunu yapmanıza gerek yoktur. Yapsanız da faydası yoktur.
Bu işlemden sonra eğer programı Delphi içinden çalıştırmışsanız program sonlandığında eğer programda bir memory kaçağı oluşmuşsa bir exception oluşacaktır ve FastMM sizi bu memory kaçağı hakkında bilgilendirecektir. Program Delphi içerisinden çalıştırılmıyorsa bu mesaj oluşmaz.
Bu işlemden sonra programınız memory işlemlerinde en az %30 daha hızlı çalışacaktır.
2. Bir klasöre kopyalayın.
3. Delphi'nin "Tools > Environment Options > Library > Library Path" listesine FastMM in bulunduğu klasörü ekleyin.
4. Son olarak projenizin dpr dosyasının uses bölünün ilk satırına FastMM unit ini ekleyin.
Bundan sonra projeniz Memory Manager olarak Borland'ın orijinal bellek yöneticisi yerine FastMM bellek yöneticisini kullanacaktır. Zaten Borland/CodeGear/Embarcadero, Delphi'nin 2006 sürümünden sonra kendi bellek yöneticisi yerine FastMM i kullanmıştır. O yüzden Delphi 2006 ve sonraki sürümlerde bunu yapmanıza gerek yoktur. Yapsanız da faydası yoktur.
Bu işlemden sonra eğer programı Delphi içinden çalıştırmışsanız program sonlandığında eğer programda bir memory kaçağı oluşmuşsa bir exception oluşacaktır ve FastMM sizi bu memory kaçağı hakkında bilgilendirecektir. Program Delphi içerisinden çalıştırılmıyorsa bu mesaj oluşmaz.
Bu işlemden sonra programınız memory işlemlerinde en az %30 daha hızlı çalışacaktır.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)