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

Bellek Sızıntısı(Memory Leak) , hatalı bellek tahsisi nedeniyle bir bilgisayar programında kaynakların yanlış yerleştirilmesidir . Kullanılmayan bir RAM konumu yayınlanmamış olarak kaldığında gerçekleşir. 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 11/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öylenir.

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

Başlamadan önce, Bellek(Memory) 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'i(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çıktır çünkü bu bir hatadır, sistemdeki bir kusurdur. Ancak sistemi tam olarak nasıl etkilediğini öğrenelim:

  1. Bellek kullanılmadığında bile serbest bırakılmadığı için 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şimi olması 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(Affirmation) : Sızıntı olup olmadığının belirlenmesi.
  2. Çekirdek modu bellek sızıntısını bulma(Finding Kernel-mode memory leak) : Ç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(Finding User-mode memory leak) : Bir kullanıcı modu sürücüsü veya uygulamanın neden olduğu sızıntıyı bulma.

Bellek ayırma

Uygulamaların RAM(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. (HealAlloc)Yığın bellek ayırma için HealAlloc işlevi. C/C++ çalışma zamanı eşdeğerleri malloc ve yenidir.
  2. (VirtualAlloc)İşletim sisteminden doğrudan tahsis için VirtualAlloc işlevi.
  3. (Kernel32 APIs)Uygulama için çekirdek belleği tutmak için Kernel32 API'leri . Örnek(Example) , CreateFile , CreateThread .
  4. User32 API'leri ve Gdi32 API'leri.

Windows'ta bellek sızıntılarını önleyin

Ö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ı

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

Bireysel programlar ve uygulamalar tarafından anormal RAM kullanımına dikkat etmeniz gerekir. (RAM)CTRL+SHIFT+ESC basarak Windows Görev Yöneticisine(Windows Task Manager) gidebilir ve Handles , User Objects , GDI Objects vb. sütunları ekleyebilirsiniz .

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

Okuyun(Read) : Bilgisayardaki Bellek Türleri Nelerdir?(What are the Types of Memory in a computer?)

(Microsoft)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ı(Application Verifier) , yığın sızıntılarını tanılar.
  2. UMDH ( Windows Hata Ayıklama Araçları'nın(Windows Debugging Tools) 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 de yığın ayırma modellerini 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ü(JavaScript Memory Leak Detector) , kodlardaki bellek sızıntılarında hata ayıklar.

Kullanım İpuçları

  1. Win32 kaynakları ve yığın ayırmaları için çekirdek HANDLE 'ları ve diğer akıllı işaretçileri kullanın.
  2. (Get)ATL kitaplığından çekirdek ayırmaları için otomatik kaynak yönetimi sınıfları alın . C++ standardında yığın ayırma için auto_ptr vardır.(auto_ptr )
  3. (Encapsulate COM)_com_ptr_t veya _bstr_t veya _variant_t yardımıyla "akıllı işaretçiler" içinde COM arabirim işaretçilerini kapsülleyin .
  4. (Monitor)Anormal bellek kullanımı için .NET kodunu (.NET)izleyin .
  5. (Avoid)Bir işlevin sonunda çoğu bloktaki değişkenlerden ayırmaların serbest bırakılmasına izin vermek için işlevler için birden çok çıkış yolundan kaçının .
  6. (Use)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 .(Wrap)
  7. Bir PROPVARIANT(PROPVARIANT) nesnesini yeniden başlatmadan veya atmadan önce her zaman PropVariantClear işlevini çağırın.(PropVariantClear)

(Troubleshoot)Windows'ta(Windows) 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 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 (RAM)Görev Yöneticisi'nde(Task Manager) sonlandırabilirsiniz . Boş alanın diğer işlemler tarafından kullanılabilmesi için cihazı yeniden başlatmanız gerekecektir. Yeniden Başlatma(Restart) olmadan bellek sızıntısı sorunu çözülmez. Bilgisayarı yavaşlatan hatalara sahip belirli bir süreç Runtime Broker'dır(Broker) . 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(Memory Diagnostic Tool) erişmek için :

  1. Tüm önemli çalışmalarınızı kaydedin.
  2. Çalıştır(Run) penceresini açmak için Win + R tuşlarına basın .
  3. Çalıştır(Run) penceresine mdsched.exe komutunu yazın .
  4. PC'yi yeniden başlatın.
  5. Yeniden başlattıktan sonra, temel bir tarama yapın veya ' Karışımı test et(Test mix) ' veya ' Geçme sayısı ' gibi ' (Pass count)Gelişmiş(Advanced) ' 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

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. Win + R tuşlarına basın ve Çalıştır(Run) penceresini açın. devmgmt.msc yazın(devmgmt.msc) ve Enter tuşuna basın(Enter) . Sizi Aygıt Yöneticisine(Device Manager) götürecektir .
  2. Güncel olmayan sürücüleri kontrol edin(Check) ve hepsini güncelleyin.
  3. Güncellemeler için kaçırmış olabilirsiniz, Windows Update'e(Windows Update) bakın .

Bu basitti.

4] Performansı optimize edin

En iyi performans için ayarla

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önetecektir. Bu adımları takip et:

  1. ' Bu PC'ye(This PC) sağ tıklayın ve sol bölmede ' Gelişmiş(Advanced) ' ayarları seçin .
  2. " Gelişmiş(Advanced) " sekmesi altında, " Performans(Performance) "a ve ardından " Ayarlar(Settings) "a gidin.
  3. ' En iyi performans için ayarla(Adjust for best performance) ' seçeneğini işaretleyin ve Tamam'ı tıklayın(OK) .
  4. Yeniden başlatın(Restart) 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(Startup) Çalışan Programları Devre Dışı Bırakın(Programs)

başlangıç ​​programları

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

  1. ' Görev Yöneticisi'ne(Task Manager) gidin .
  2. ' Başlangıç'a(Startup) gidin .
  3. (Disable the startup programs)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

Disk Birleştirme

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. ' Bu PC(This PC) ' veya ' Bilgisayarım'a(My Computer) gidin .
  2. (Right-Click)Sistem sabit sürücüsüne (genellikle C: sürücüsü) sağ tıklayın .
  3. ' Özellikler(Properties) ' altındaki ' Araçlar(Tools) ' a gidin ve ' Optimize Et(Optimize) 'i seçin.
  4. Birleştirilecek sürücüyü seçin ve ' Analiz(Analyze) et ' seçeneğini seçin.

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(clear the Page File at every shutdown) aşağıda açıklanmıştır :

  • Kayıt Defteri Düzenleyicisini(Registry Editor) başlatmak için Arama'ya (Search)regedit yazın .
  • Bu yolu girin:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
  • ClearPageFileAtShutDown değerini '1' olarak değiştirin.( ClearPageFileAtShutDown to ‘1’.)
  • Değişiklikleri kaydedin ve cihazı yeniden başlatın(Restart) .

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

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

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

  1. services.msc'yi(services.msc) arayın ve Hizmetler Yöneticisi'ne gidin.
  2. ' Superfetch'i(Superfetch) arayın ve ' Özellikler'e(Properties) gitmek için sağ tıklayın .
  3. ' Durdur'u(Stop) seçin .
  4. Ayrıca , açılır menüden hizmeti ' Devre Dışı Bırak '.(Disable)
  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'ını kullanın. (Windows Defender)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 .(Make)

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



About the author

5 yıldan fazla deneyime sahip bir Windows 10/11/10 müşteri destek uzmanıyım. Ayrıca son birkaç yıldır hevesli bir oyuncuyum ve xbox One'a büyük ilgi duyuyorum. Şu anki odak noktam, müşterilere, çoğu zaman çağrı merkezi desteği ve çevrimiçi yardım gibi müşteri hizmetleri araçlarımızı kullanarak, Windows 10 veya Windows 11 sistemlerinde yaşadıkları sorunları konusunda yardımcı olmaktır.



Related posts