Hafıza

Windows 10'da Bellek Sızıntıları nasıl bulunur ve düzeltilir

Windows 10'da Bellek Sızıntıları nasıl bulunur ve düzeltilir

bir Bellek sızıntısı hatalı bellek tahsisi nedeniyle bir bilgisayar programında kaynakların yanlış yerleştirilmesidir. Kullanılmayan bir RAM konumu yayınlanmamış olarak kaldığında olur. Bellek sızıntısı, gerekenden daha fazla RAM kullanan bir programa atıfta bulunan alan 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ımda olmaması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ıklamak için bir yazılım sorunu olduğunu bilmelisiniz - örneğin Java, JavaScript, C/C++, Windows, vb. RAM veya sabit diskin fiziksel olarak değiştirilmesi gerekli değildir.

Bu neden kötü

Bir bellek sızıntısının kötü olduğu açık çünkü bu bir hata, sistemdeki bir kusur. Ancak sistemi tam olarak nasıl etkilediğini öğrenelim:

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

Bir bellek sızıntısını tanımlamak 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. Olumlama: Sızıntı olup olmadığını belirleme.
  2. Çekirdek modu bellek sızıntısını bulma: Çekirdek modu sürücü bileşeninin neden olduğu sızıntıyı bulma.
  3. Kullanıcı modu bellek sızıntısını bulma: Kullanıcı modu sürücüsü veya uygulamanın neden olduğu sızıntıyı bulma.

Bellek ayırma

Uygulamaların RAM tahsis ettiği farklı modlar vardır. Kullanımdan sonra alan boşaltılmazsa, ayırma modundan bağımsız olarak bellek sızıntısı meydana gelir. Bazı yaygın ayırma kalıpları şunlardır:

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

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

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

İzleme alışkanlıkları

Bireysel programlar ve uygulamalar tarafından anormal RAM kullanımına dikkat etmeniz gerekir. düğmesine basarak Windows Görev Yöneticisine gidebilirsiniz CTRL+SHIFT+ESC ve Tutamaçlar, Kullanıcı Nesneleri, GDI Nesneleri vb. gibi sütunları ekleyin.

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

oku: Bilgisayardaki Bellek Türleri Nelerdir??

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 bireysel işlemler için sızıntıları teşhis eder.
  3. RAM kullanımının kapsamlı bir analizi için Trace Capture.
  4. Xperf, yığın ayırma modellerini de izler.
  5. CRT Debug Heap, 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ı Dedektörü, kodlardaki bellek sızıntılarında hata ayıklar.

Kullanım İpuçları

  1. Çekirdeği kullan ÜSTESİNDEN GELMEKWin32 kaynakları ve yığın ayırmaları için s ve diğer akıllı işaretçiler.
  2. ATL kitaplığından çekirdek ayırmaları için otomatik kaynak yönetimi sınıfları alın. C++ standardı auto_ptr yığın tahsisleri için.
  3. COM arabirimi işaretçilerini "akıllı işaretçiler" içinde aşağıdakilerin yardımıyla kapsülleyin: _com_ptr_t veya _bstr_t veya _variant_t.
  4. izlemek .Anormal bellek kullanımı için NET kodu.
  5. Bir işlevin sonunda çoğu bloktaki değişkenlerden ayırmaların serbest bırakılmasını sağlamak için işlevler için birden çok çı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ığını ve ayırmaları akıllı işaretçilere sarın.
  7. her zaman arayın PropVariantClear PROPVARIANT nesnesini yeniden başlatmadan veya atmadan önce işlev.

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 da ç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 aldığı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 gerekecek. Yeniden Başlatma olmadan bellek sızıntısı sorunu çözülmeyecek. Bilgisayarı yavaşlatan hatalara sahip belirli bir süreç Runtime Broker'dır. Bunu tek başına devre dışı bırakmak işe yararsa deneyin.

2] Bellek Tanılama Araçları

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

  1. Tüm önemli işlerinizi kaydedin.
  2. Basın Kazan + R açmak için Çalıştırmak pencere.
  3. komutu yazın mdsched.exe içinde Çalıştırmak pencere.
  4. PC'yi yeniden başlatın.
  5. Yeniden başlattıktan sonra, temel bir tarama yapın veya 'ileri'gibi seçenekler'Test karışımı' veya 'geçiş sayısı'.
  6. Basın F10 testi başlatmak için.

Bunlar hala geçici düzeltmeler.

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

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

  1. Basın Kazan + R ve aç Çalıştırmak pencere. Tür devmgmt.msc ve Enter'a basın. seni şuraya götürecek Aygıt Yöneticisi.
  2. Güncel olmayan sürücüleri kontrol edin ve hepsini güncelleyin.
  3. Güncellemeler için kaçırmış olabilirsiniz, Windows Update'e bakın.

Bu basitti.

4] Performansı optimize edin

Windows'u performansa göre 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. ' üzerine sağ tıklayınbu bilgisayar' ve ' öğesini seçinileri' ayarları sol bölmede.
  2. Altında 'ileri' sekmesi, git'Verim', bunu takiben 'Ayarlar'.
  3. Kontrol 'En iyi performans için ayarla' ve tıklayın TAMAM MI.
  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

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

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

6] Sabit Sürücüyü Birleştir

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

  1. Git 'bu bilgisayar' veya 'Benim bilgisayarım'.
  2. Sistem sabit sürücüsüne sağ tıklayın (genellikle C: sürücüsü).
  3. Git 'Araçlar'altında'Özellikleri' ve ' öğesini seçinoptimize et'.
  4. Birleştirilecek sürücüyü seçin ve 'analiz et'.

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

7] Kapatma sırasında ClearPage Dosyası

Şimdi karmaşıklaşıyor - ama endişelenme. Her kapatmada Sayfa Dosyasını nasıl temizleyeceğiniz aşağıda açıklanmıştır:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerBellek Yönetimi

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

9] Süper Getirmeyi Devre Dışı Bırak

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

  1. Arama Hizmetler.msc ve Hizmetler Yöneticisine gidin.
  2. Aramak 'süper getirme' ve gitmek için sağ tıklayın'Özellikleri'.
  3. ' öğesini seçinDur'.
  4. Ayrıca 'devre dışı bırak' açılır menüden hizmet.
  5. Bilgisayarı yeniden başlatın ve performansın iyileşip iyileşmediğini kontrol edin.

Bu işe yaramazsa 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. Bellek sızıntısının nedeni haline gelmemesi için antivirüsün işletim sisteminizi destekleyecek şekilde güncellendiğinden emin olun.

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.

En son OpenRA Strateji Oyununu Ubuntu Linux'a yükleyin
OpenRA, klasik Command & Conquer: Red Alert gibi erken Westwood oyunlarını yeniden yaratan bir Libre/Free Gerçek Zamanlı Strateji oyun motorudur. Dağı...
Gamecube & Wii için en yeni Dolphin Emulator'ı Linux'a yükleyin
Dolphin Emulator, seçtiğiniz Gamecube & Wii oyunlarını Linux Kişisel Bilgisayarlarda (PC) oynamanıza izin verir. Ücretsiz olarak kullanılabilen ve aç...
Linux'ta GameConqueror Cheat Engine Nasıl Kullanılır
Makale, Linux'ta GameConqueror hile motorunu kullanma hakkında bir kılavuzu kapsar. Windows'ta oyun oynayan birçok kullanıcı, oyun deneyimini geliştir...