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.
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:
- Bellek kullanılmadığında bile serbest bırakılmadığı için belleğin tükenmesine neden olur.
- Belleğin tükenmesi yazılımın eskimesine neden olur.
- Azaltılmış kullanılabilir bellek, yanıt süresinin artmasına ve sistem tarafından düşük performansa neden olur.
- 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:
- Olumlama(Affirmation) : Sızıntı olup olmadığının belirlenmesi.
- Ç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.
- 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:
- (HealAlloc)Yığın bellek ayırma için HealAlloc işlevi. C/C++ çalışma zamanı eşdeğerleri malloc ve yenidir.
- (VirtualAlloc)İşletim sisteminden doğrudan tahsis için VirtualAlloc işlevi.
- (Kernel32 APIs)Uygulama için çekirdek belleği tutmak için Kernel32 API'leri . Örnek(Example) , CreateFile , CreateThread .
- 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ı
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:
- Uygulama Doğrulayıcı(Application Verifier) , yığın sızıntılarını tanılar.
- 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.
- RAM kullanımının kapsamlı bir analizi için Trace Capture .
- Xperf de yığın ayırma modellerini izler.
- 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.
- 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ı
- Win32 kaynakları ve yığın ayırmaları için çekirdek HANDLE 'ları ve diğer akıllı işaretçileri kullanın.
- (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 )
- (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 .
- (Monitor)Anormal bellek kullanımı için .NET kodunu (.NET)izleyin .
- (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 .
- (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)
- 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 için dahili Bellek Tanılama Aracına(Memory Diagnostic Tool) erişmek için :
- Tüm önemli çalışmalarınızı kaydedin.
- Çalıştır(Run) penceresini açmak için Win + R tuşlarına basın .
- Çalıştır(Run) penceresine mdsched.exe komutunu yazın .
- PC'yi yeniden başlatın.
- 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 .
- Testi başlatmak için F10 tuşuna basın .
Bunlar hala geçici düzeltmelerdir.
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 :
- 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 .
- Güncel olmayan sürücüleri kontrol edin(Check) ve hepsini güncelleyin.
- Güncellemeler için kaçırmış olabilirsiniz, Windows Update'e(Windows Update) 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önetecektir. Bu adımları takip et:
- ' Bu PC'ye(This PC) sağ tıklayın ve sol bölmede ' Gelişmiş(Advanced) ' ayarları seçin .
- " Gelişmiş(Advanced) " sekmesi altında, " Performans(Performance) "a ve ardından " Ayarlar(Settings) "a gidin.
- ' En iyi performans için ayarla(Adjust for best performance) ' seçeneğini işaretleyin ve Tamam'ı tıklayın(OK) .
- 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)
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:
- ' Görev Yöneticisi'ne(Task Manager) gidin .
- ' Başlangıç'a(Startup) gidin .
- (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
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 :
- ' Bu PC(This PC) ' veya ' Bilgisayarım'a(My Computer) gidin .
- (Right-Click)Sistem sabit sürücüsüne (genellikle C: sürücüsü) sağ tıklayın .
- ' Özellikler(Properties) ' altındaki ' Araçlar(Tools) ' a gidin ve ' Optimize Et(Optimize) 'i seçin.
- 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:
- services.msc'yi(services.msc) arayın ve Hizmetler Yöneticisi'ne gidin.
- ' Superfetch'i(Superfetch) arayın ve ' Özellikler'e(Properties) gitmek için sağ tıklayın .
- ' Durdur'u(Stop) seçin .
- Ayrıca , açılır menüden hizmeti ' Devre Dışı Bırak '.(Disable)
- 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 .
Related posts
açıp Windows 10 içinde Small Memory Dump (DMP) dosyaları nasıl okunur
Windows Memory Diagnostics Tool Windows 11/10'te nasıl çalıştırılır
Page File size veya Windows 10'de sanal bellek nasıl artırılır
elle Windows 10 bir Crash Dump file nasıl oluşturulur
Explorer.exe High Memory or CPU usage Windows 10'de
Windows 10'de kapanışta, Move veya Delete PageFile.sys nasıl yedeklenir?
System Properties Nasıl Açılır Windows 10 Control Panel
Windows 10'de Core Isolation and Memory Integrity'leri etkinleştirin veya devre dışı bırakın
Fix Crypt32.dll Windows 11/10'da bulunamadı veya eksik hata
Windows 10'da Memory Cache'u nasıl temizlenir?
Fix Chrome yüksek CPU, Memory or Disk usage içinde Windows 10
Windows 10 Alarms and Clocks app Nasıl kullanılır?
Shutdown and Startup Log Windows 10'te nasıl kontrol edilir
Windows 10'de% 100 Disk, High CPU, High Memory usage nasıl düzeltilir
Windows 10'de Windows.edb file nedir
Windows 11/10'de Webcam'u nasıl test edilir? Çalışıyormu?
Reaction Time Windows 11/10'de nasıl ölçülür?
Best Windows 10 için ücretsiz ISO Mounter software
Fix Microsoft Edge High Memory Usage Windows 10'de
Processor Cache Memory Size Windows 11/10'de nasıl kontrol edilir