Tüm Platformlar için Hızlı Uygulama Geliştirme Kitabı... Delphi
Ön Sipariş Talebinde Bulunan Üyelerimiz
Sipariş Talebinde Bulunan Üyelerimiz

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 3.5/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Datasetin bağlı olduğu Myquery'i free Etmek (MemoryLeak Tespiti)
#1
Sorumun başlığını yazmakta zorlandım Smile

Bir uygulamamda 

Myquery ile sorgumu yapıp, dataset ile dbgridime aktarıyorum.
Myquery create ettikten sonra , free edemiyorum edersem datasetim , tablom boşalıyor, nasıl bir yol izlemek daha mantıklı
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#2
Merhaba,
Runtime anında yapacağın Create  işlemleri için mutlaka bunu Formun onCreate eventinde tanımlayarak yap.

Myquery :=TMyquery.Create(Self)

Formun FormClose eventinde
Myquery.Free;

formun FormDestroy eventinde ise
Myquery:=Nil;

şeklinde kullan. Bu şekilde MemoryLeak oluşmasını da önlemiş olursun.

İyi Çalışmalar.
Cevapla
#3
Mantıklı
Ben hep işlem içerisinde create edip free ediyordum,

Peki self olarak create ettiğimde, Form kapandığında formla birlikte Myqueryde yok olmaz mı ?
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#4
Aynen dediğiniz gibi olacaktır. Benim kullandığım yapı xForm ile işlemim bittiği an o formu hafızadan silerim. Aynı Myquery de yaptığım gbi. eğer bu formu sürekli kullacaksanız bu işlemi Ana formunuzun OnCreate kısmında Myquery :=TMyquery.Create(Self) şeklinde yapıp tabi ana formu referans gösterek kullanırsınız. Anaform.Myquery şeklinde, OnClose ve OnDestroy olayında Free ve Nill yapabilirsiniz. yine hafıza kaçaklarını önlemiş olursunuz. bu konuda ilk başlarda inanılmaz sıkıntılar yaşadığım için ilk Başta yapıya göre Create(Self yada Application) tanımlamasının ardından ilgili yerlerde de Free ve Nill yaparım ki daha sonra acaba hangi Create ten dolayı sıkıntı var dememek için.
Cevapla
#5
Peki, projemde MemoryLeak var mı yokmu, bu kaçakları tespit edebilecek bir sistem var mı delphide bu kaçaklar nasıl tespit edilir.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#6
tabikide Project Menüsünden View Source ekranına geldiğinizde
begin
 ReportMemoryLeaksOnShutdown :=True; // bu satırı eklemeniz yeterli olacaktır.
 Application.Initialize;
yazdığınızda projeyi derleyip çalıştırın çıkışta size bilgi verecektir.

Daha detaylı bilgi almak isterseniz Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol Burayı inceleyebilirsiniz.

İyi Çalışmalar.



Cevapla
#7
(25-08-2016, Saat: 14:34)Cyber Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Oltabikide Project Menüsünden View Source ekranına geldiğinizde
begin
 ReportMemoryLeaksOnShutdown :=True; // bu satırı eklemeniz yeterli olacaktır.
 Application.Initialize;
yazdığınızda projeyi derleyip çalıştırın çıkışta size bilgi verecektir.

Daha detaylı bilgi almak isterseniz Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol Burayı inceleyebilirsiniz.

İyi Çalışmalar.
[url=https://www.youtube.com/watch?v=7yMs0t0t-7s][/url]

Teşekkürler ilk fırsaatta inceleyeceğim
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#8
Güzelmiş bu,
Memory Leak'lara son Smile

E3pdnA.png
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#9
Dün baktım buna ben, Delphi 7 de çalışmadı o kod yada ben beceremedim. FastMM diye bir kod buldum, bu gün vakit bulabilirsem onu inceliycem.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#10
Malesef Delphi 7 ile uyumluluğu yok hocam,

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol Tugrul Hocamızın bu konuyla ilgili bir açıklaması var.
Alıntı:Eğer Delphi 2010 ile yazılım geliştiriyorsanız; projenizin kaynak kodunda ReportMemoryLeaksOnShutDown := true; satırını aktif hâle getirin; Delphi 2010 kullanmıyorsanız EurekaLog gibi bir yazılımın demo sürümünü indirip Delphi’ye kurun ve muhtemel Memory Leak’leri tespit etmeye çalışın.

İyi Çalışmalar.
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi Bağlı Liste Ekleme,Silme,Listeleme narkotik 1 124 21-10-2018, Saat: 14:59
Son Yorum: sabanakman
  Free malitutuncu 10 656 07-06-2018, Saat: 12:16
Son Yorum: uparlayan
Brick Free vs FreeAndNil edo 35 4.923 28-05-2018, Saat: 10:55
Son Yorum: edo
  Json tarihini convert etmek ermanispir@gmail.com 2 313 25-05-2018, Saat: 17:05
Son Yorum: Kuri_YJ
  Bilgisayara bağlı monitörler yhackup 3 410 15-12-2017, Saat: 20:38
Son Yorum: yhackup



Konuyu Okuyanlar: 1 Ziyaretçi