SORU
11 ŞUBAT 2015, ÇARŞAMBA


Bellek Sızıntısı Dedektörü Çalışma Prensibi

Nasıl bellek sızıntısı dedektörü gerçekten işe yarıyor mu? Genel olarak, temel kavramlar nelerdir? Dil bunu açıklamak olarak C alabilir.

CEVAP
11 ŞUBAT 2015, ÇARŞAMBA


Dedektörleri çalışma sızıntı farklı şekillerde bir çift vardır. Ayırma sırasında daha fazla bilgi izleyebilir ve performans ile ilgili değil bu olanlar malloc free Uygulama değiştirebilirsiniz. Bu dmalloc nasıl çalıştığını benzer. Genel olarak, malloc'ed ama değil free'd sızdırılmış. herhangi bir adres

Temel uygulama aslında oldukça basit. Sadece her tahsisat bir arama tablosu ve satır sayısını korumak ve serbest bırakılan girdisini kaldırın. Program bittiğinde tüm sızdırılmış bellek listeleyebilirsiniz. Zor kısmı tahsisat serbest olması gerekirken belirliyor. Bu aynı adres için birden çok işaretçi olduğunda daha da zordur.

Uygulamada, muhtemelen daha tek satır numarasını istersin, daha ziyade bir kayıp tahsis ve yığın izleme.

Başka bir yaklaşım bütün bir sanal makine adreslerine ve belleğe başvuruyor ve ilgili muhasebe işlerini takip etmek uygulayan valgrind nasıl işliyor. Valgrind yaklaşım yasak okur ya da yazar gibi de söyleyebiliyor olarak çok daha pahalı, ama aynı zamanda çok daha etkili bellek hataları diğer türleri hakkında.

Valgrind aslında temel talimatları aletleri ve belirli bir bellek adresi fazla başvuru var zaman izleyebilirsiniz. Adres atamalarını takip ederek bunu yapabilirsiniz, ve çok bellek parçası kaybolmuş, ama tam olarak değil sadece o anlatabilirne zamankayıp oldu.

C new delete operatörler ekler çünkü işler biraz daha zor kaçak dedektörleri her iki tür için yapar. Teknik olarak new malloc Daha bellek tamamen farklı bir kaynak olabilir. Ancak uygulamada pek çok gerçek C uygulamaları sadece malloc new uygulamak ya da bir seçenek, alternatif bir yaklaşım yerine malloc kullanmak için kullanın.

C gibi yüksek seviyeli diller alternatif std::vector std::list gibi bellek ayırma daha yüksek seviyeli yolu, sahip olma eğilimindedir. Temel sızıntı dedektörü potansiyel olarak birçok ayırmalarını üst düzey modları ayrı ayrı rapor eder. Tüm konteyner kayboldu demekten daha az yararlı.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • calicoJake

    calicoJake

    29 EKİM 2007
  • Edge-CGI 3D Tutorials and more!

    Edge-CGI 3D

    11 HAZİRAN 2013
  • Vintendo Power

    Vintendo Pow

    2 Ocak 2007