Windows 10'da Bellek Sızıntılarını bulun ve düzeltin

Bir bellek sızıntısı nedeniyle hatalı bellek tahsisi için bir bilgisayar programında kaynağın bir yanlış yerleşim olduğunu. Kullanımda olmayan bir RAM konumu yayınlanmadan kaldığında olur. Bellek sızıntısı, gereğinden fazla RAM kullanan bir programa atıfta bulunan bir boşluk sızıntısı ile karıştırılmamalıdır. Windows 10/8/7 sistemindeki bir bellek sızıntısının, kullanılmamasına rağmen belleğe erişilemediğinde gerçekleştiği söyleniyor.

Windows 10'da Bellek Sızıntıları

Başlamadan önce Bellek sızıntısının hata ayıklanması gereken bir yazılım sorunu olduğunu bilmelisiniz - örneğin Java, JavaScript, C / C ++, Windows, vb. RAM veya sabit diski fiziksel olarak değiştirmek gerekli değildir.

Windows 10'da Bellek Sızıntısı

Bu neden kötü

Bir bellek sızıntısının kötü olduğu aşikardır çünkü bu bir hatadır, sistemdeki bir kusurdur. Ama sistemi tam olarak nasıl etkilediğini öğrenelim:

  1. Bellek, kullanılmadığında bile serbest kalmadığından, bellek tükenmesine neden olur.
  2. Belleğin tükenmesi yazılımın eskimesine neden olur.
  3. Azalan kullanılabilir bellek, yanıt süresinin artmasına ve sistem tarafından düşük performansa neden olur.
  4. Kontrol edilmeyen bellek sızıntısı sonunda bir uygulamanın çökmesine neden olabilir.

Bir bellek sızıntısını belirlemek için, bir programcının programın kaynak koduna erişmesi gerekir.

Sızıntıyı bulmak

Bir sorunu çözmek için önce onu tanımlamamız gerekir. Bir bellek sızıntısını bulmak için temel adımlar şunlardır:

  1. Onay : Bir sızıntının olup olmadığının belirlenmesi.
  2. Çekirdek modu bellek sızıntısını bulma : Bir çekirdek modu sürücü bileşeninin neden olduğu bir sızıntının bulunması.
  3. Kullanıcı modu bellek sızıntısını bulma: Kullanıcı modu sürücü veya uygulamadan kaynaklanan bir sızıntının yerini belirleme.

Bellek ayırma

Uygulamaların RAM ayırdığı farklı modlar vardır. Kullanımdan sonra alan serbest bırakılmazsa, ayırma moduna bakılmaksızın bellek sızıntısı meydana gelecektir. Bazı yaygın tahsis modelleri şunlardır:

  1. Yığın bellek tahsisi için HealAlloc işlevi. C / C ++ çalışma zamanı eşdeğerleri malloc ve yenidir.
  2. İşletim sisteminden doğrudan ayırma için VirtualAlloc işlevi.
  3. Kernel32 API'leri, uygulama için çekirdek belleğini tutar. Örnek, CreateFile, CreateThread.
  4. User32 API'leri ve Gdi32 API'leri.

Bellek sızıntılarını önleme

Hepimiz önlemenin tedaviden daha iyi olduğunu biliyoruz, bu yüzden burada bir bellek sızıntısını önlemenin bazı yolları var.

İzleme alışkanlıkları

Windows 10'da Bellek Sızıntıları

Bireysel programlar ve uygulamalar tarafından anormal RAM kullanımına dikkat etmeniz gerekir. CTRL + SHIFT + ESC tuşlarına basarak Windows Görev Yöneticisine gidebilir ve Kollar, Kullanıcı Nesneleri, GDI Nesneleri vb. Sütunları ekleyebilirsiniz.

Bu, kaynak kullanımını kolayca izlemenize yardımcı olacaktır.

Bellek sızıntılarını teşhis etmek için Microsoft araçları

Çeşitli araçlar, çeşitli ayırma modları için bellek sızıntılarını teşhis eder:

  1. Uygulama Doğrulayıcı yığın sızıntılarını teşhis eder.
  2. UMDH (Windows Hata Ayıklama Araçlarının bir bileşeni), yığın bellek ayırmalarını izleyerek ayrı işlemler için sızıntıları teşhis eder.
  3. RAM kullanımının kapsamlı bir analizi için İzleme Yakalama.
  4. Xperf de yığın ayırma modellerini izler.
  5. CRT Hata Ayıklama Yığını yalnızca yığın tahsislerini izlemekle kalmaz, aynı zamanda sızıntıları en aza indirmek için kodlama uygulamalarına da olanak tanır.
  6. JavaScript Bellek Sızıntısı Detektörü, kodlardaki bellek sızıntılarını giderir.

Kullanım İpuçları

  1. Win32 kaynakları ve yığın ayırmaları için çekirdek HANDLE larını ve diğer akıllı işaretçileri kullanın .
  2. ATL kitaplığından çekirdek tahsisleri için otomatik kaynak yönetimi için sınıflar alın. C ++ standardında yığın ayırmaları için auto_ptr vardır .
  3. Kapsüllemek COM yardımıyla “akıllı işaretçiler” içinde işaretçiler arayüzü _com_ptr_t veya _bstr_t veya _variant_t .
  4. Anormal bellek kullanımı için .NET kodunu izleyin.
  5. Bir işlevin sonunda çoğu bloktaki ayırmaların değişkenlerden serbest bırakılmasına izin vermek için işlevler için birden fazla çıkış yolundan kaçının.
  6. Yerel istisnaları yalnızca _finally bloğundaki tüm ayırmaları serbest bıraktıktan sonra kullanın. C ++ istisnalarını kullanmak için tüm yığınları sarın ve ayırmaları akıllı işaretçilerle işleyin.
  7. PROPVARIANT nesnesini yeniden başlatmadan veya atmadan önce daima PropVariantClear işlevini çağırın.

Windows'ta bellek sızıntılarını giderme

Bellek sızıntılarını önlemenin çeşitli yolları gibi, bellek sızıntılarını durdurmanın çeşitli yolları vardır. Ancak başlamadan önce, önce bir sistem geri yükleme noktası oluşturmayı unutmayın.

1] İşlemleri kapatın ve yeniden başlatın.

Gereksiz bir işlemin çok fazla RAM kullandığını görürseniz, işlemi Görev Yöneticisi'nde sonlandırabilirsiniz. Boşalan alanın diğer işlemler tarafından kullanılabilmesi için cihazı yeniden başlatmanız gerekecektir. Yeniden başlatma olmadan bellek sızıntısı sorunu çözülmez. Bilgisayarı yavaşlatan hatalar içeren belirli bir işlem, Runtime Broker'dır. Bunu tek başına devre dışı bırakmanın işe yarayıp yaramadığını deneyin.

2] Bellek Tanılama Araçları

Windows Bellek Tanılama

Windows için dahili Bellek Tanılama Aracına erişmek için:

  1. Tüm önemli çalışmalarınızı kaydedin.
  2. Çalıştır penceresini açmak için Win + R tuşlarına basın .
  3. Komut yazın mdsched.exe içinde Çalıştır penceresine.
  4. Bilgisayarı yeniden başlatın.
  5. Yeniden başlattıktan sonra, temel bir tarama gerçekleştirin veya " Test karışımı " veya " Geçiş sayısı " gibi " Gelişmiş " seçeneklere gidin .
  6. Testi başlatmak için F10 tuşuna basın .

Bunlar hala geçici düzeltmelerdir.

3] Sürücü güncellemelerini kontrol edin

Sürücü Yazılımını Güncelleyin

Eski sürücüler bellek sızıntılarına neden olur. Tüm sürücüleri güncel tutun:

  1. Win + R tuşlarına basın ve Çalıştır penceresini açın . Tip devmgmt.msc ve Enter'a basın. Sizi Aygıt Yöneticisine götürecektir .
  2. Eski sürücüleri kontrol edin ve hepsini güncelleyin.
  3. Kaçırmış olabileceğiniz güncellemeler için Windows Update'e bakın.

Bu basitti.

4] Performansı optimize edin

En iyi performans için ayarla

Windows'u performans için ayarlamak, bellek sızıntılarını durdurmak için işlemci zamanlaması ve bellek kullanımı dahil her şeyi yönetir. Bu adımları takip et:

  1. ' Bu PC'ye sağ tıklayın ve sol bölmede ' Gelişmiş 'ayarları seçin .
  2. " Gelişmiş " sekmesinin altında, " Performans " a ve ardından " Ayarlar " a gidin.
  3. Kontrol ' en iyi performans için ayarla ' yi ve OK .
  4. Yeniden başlatın ve sorunun çözülüp çözülmediğini kontrol edin.

Bu basit çözüm işe yaramadıysa, sonraki çözümü deneyin.

5] Başlangıçta çalışan Programları devre dışı bırakın

Başlangıç ​​programları

Zahmetli programları devre dışı bırakmak, bellek sızıntısı sorunundan kurtulmanın tek yoludur. Görev Yöneticisi'ne gidin ve sorun çıkaran programı devre dışı bırakın. Hangi programların sorun yarattığını bilmiyorsanız, şunu yapın:

  1. ' Görev Yöneticisi'ne gidin .
  2. " Başlangıç " a gidin.
  3. Varsayılan olarak çalıştırmanız gerekmeyen başlangıç ​​programlarını devre dışı bırakın.

6] Sabit Diski Birleştirin

Disk Birleştirme

Windows 10 bunu sizin için otomatik olarak yapsa da, performansı optimize etmek için ara sıra sabit sürücüleri birleştirmeniz gerekebilir:

  1. ' Bu Bilgisayar'a veya' Bilgisayarım'a gidin .
  2. Sistem sabit sürücüsüne (genellikle C: sürücüsü) sağ tıklayın.
  3. ' Özellikler ' altında ' Araçlar'a gidin ve' Optimize Et'i seçin .
  4. Birleştirilecek sürücüyü seçin ve ' Analiz Et'i seçin .

Yeni parçalanmadan sonra bilgisayarınızı yeniden başlatın.

7] ClearPage Dosyası kapanırken

Şimdi karmaşıklaşıyor - ama endişelenmeyin. Her kapatmada Sayfa Dosyasını şu şekilde temizleyebilirsiniz:

  • Tip regedit Kayıt Defteri Düzenleyicisi'ni başlatmak için Search.
  • Bu yolu girin:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerHafıza Yönetimi
  • ClearPageFileAtShutDown değerini '1' olarak değiştirin.
  • Değişiklikleri kaydedin ve cihazı yeniden başlatın.

Bu onu yapmalı. Kapatma işleminizin biraz daha zaman alacağını unutmayın.

9] Superfetch'i devre dışı bırakın

Bu Windows Hizmeti, önyükleme süresini en aza indirerek performansı optimize eder. Windows'un RAM kullanımını yönetmesine izin verir. Superfetch'i devre dışı bıraktıktan sonra hayat uygun değildir, ancak gerekirse yapın. En azından sorunu izole etmek için bunu tek başına deneyin:

  1. Arama services.msc ve Hizmetleri Yöneticisi gidin.
  2. " Superfetch " i arayın ve " Özellikler " e gitmek için sağ tıklayın .
  3. ' Durdur'u seçin .
  4. Ayrıca açılır menüden hizmeti 'devre dışı bırakın '.
  5. Bilgisayarı yeniden başlatın ve performansın iyileşip iyileşmediğini kontrol edin.

Bu işe yaramadıysa Superfetch'i etkinleştirin.

10] Kötü amaçlı yazılım olup olmadığını kontrol edin

Kötü amaçlı yazılımları taramak ve ortadan kaldırmak için üçüncü taraf bir virüsten koruma yazılımı veya Windows 10'un şirket içi Windows Defender'ı kullanın. Antivirüsün işletim sisteminizi destekleyecek şekilde güncellendiğinden emin olun, böylece bellek sızıntısına neden olmaz.

Bellek sızıntılarını bulmak veya önlemek için ihtiyaç duyabileceğiniz her çözüm tam burada. MSDN ve Microsoft'ta bellek sızıntıları hakkında daha fazla bilgi edinebilirsiniz.

Original text


Windows 10'da Bellek Sızıntıları