Delphi ve Kaynak Kullanımı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
fearless
Üye
Mesajlar: 15
Kayıt: 26 Kas 2005 10:15

Delphi ve Kaynak Kullanımı

Mesaj gönderen fearless »

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.
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Delphi ve Kaynak Kullanımı

Mesaj gönderen csunguray »

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.
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/)
fearless
Üye
Mesajlar: 15
Kayıt: 26 Kas 2005 10:15

Re: Delphi ve Kaynak Kullanımı

Mesaj gönderen fearless »

delphi 7 enterprise ı kullanıyorum.
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Delphi ve Kaynak Kullanımı

Mesaj gönderen csunguray »

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.
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/)
Cevapla