Temukan dan perbaiki Kebocoran Memori di Windows 11/10

Kebocoran Memori(Memory Leak) adalah salah penempatan sumber daya dalam program komputer karena alokasi memori yang salah. Itu terjadi ketika lokasi RAM yang tidak digunakan tetap tidak dirilis. Kebocoran memori tidak sama dengan kebocoran ruang, yang mengacu pada program yang menggunakan lebih banyak RAM daripada yang diperlukan. Kebocoran memori pada sistem Windows 11/10/8/7 dikatakan terjadi ketika memori tidak dapat diakses meskipun tidak digunakan.

Kebocoran Memori di Windows 11/10

Sebelum Anda mulai, Anda harus tahu bahwa kebocoran Memori(Memory) adalah masalah perangkat lunak untuk di-debug – misalnya di Java , JavaScript , C/C++, Windows , dll. Mengganti RAM atau hard disk secara fisik tidak diperlukan.

Kebocoran Memori di Windows 10

Mengapa itu buruk?

Jelas kebocoran memori buruk karena itu adalah bug, cacat dalam sistem. Tapi mari kita cari tahu bagaimana tepatnya hal itu memengaruhi sistem:

  1. Karena memori tidak dibebaskan bahkan saat tidak digunakan, hal ini mengakibatkan penipisan memori.
  2. Kehabisan memori menyebabkan penuaan perangkat lunak.
  3. Berkurangnya memori yang tersedia menyebabkan peningkatan waktu respons dan kinerja sistem yang buruk.
  4. Kebocoran memori yang tidak dicentang pada akhirnya dapat menyebabkan crash aplikasi.

Untuk mengidentifikasi kebocoran memori, seorang programmer harus memiliki akses ke kode sumber program.

Menemukan kebocoran

Untuk memecahkan suatu masalah, kita perlu mengidentifikasinya terlebih dahulu. Langkah-langkah dasar untuk menemukan kebocoran memori adalah:

  1. Afirmasi(Affirmation) : Menentukan apakah telah terjadi kebocoran.
  2. Menemukan kebocoran memori mode kernel(Finding Kernel-mode memory leak) : Menemukan kebocoran yang disebabkan oleh komponen driver mode kernel.
  3. Menemukan kebocoran memori mode pengguna(Finding User-mode memory leak) : Menemukan kebocoran yang disebabkan oleh driver atau aplikasi mode pengguna.

Alokasi memori

Ada mode yang berbeda di mana aplikasi mengalokasikan RAM . Jika ruang tidak dibebaskan setelah digunakan, kebocoran memori akan terjadi terlepas dari mode alokasi. Beberapa pola alokasi umum adalah:

  1. Fungsi HealAlloc(HealAlloc) untuk alokasi memori tumpukan. Setara runtime C/C++ adalah malloc dan baru.
  2. Fungsi VirtualAlloc(VirtualAlloc) untuk alokasi langsung dari OS.
  3. Kernel32 API(Kernel32 APIs) untuk menyimpan memori kernel untuk aplikasi. Contoh(Example) , CreateFile , CreateThread .
  4. API User32 dan API Gdi32.

Cegah kebocoran memori di Windows

Kita semua tahu mencegah lebih baik daripada mengobati jadi berikut adalah beberapa cara untuk mencegah kebocoran memori.

Memantau kebiasaan

Kebocoran Memori di Windows 10

Anda perlu mengawasi penggunaan RAM yang tidak normal oleh masing-masing program dan aplikasi. Anda dapat pergi ke Windows Task Manager dengan menekan CTRL+SHIFT+ESC dan menambahkan kolom seperti Handles , User Objects , GDI Objects , dll.

Ini akan membantu Anda dengan mudah memantau penggunaan sumber daya.

Baca(Read) : Apa Saja Jenis-Jenis Memori pada Komputer?(What are the Types of Memory in a computer?)

Alat Microsoft(Microsoft) untuk mendiagnosis kebocoran memori

Berbagai alat mendiagnosis kebocoran memori untuk berbagai mode alokasi:

  1. Pemverifikasi Aplikasi(Application Verifier) mendiagnosis kebocoran tumpukan.
  2. UMDH (komponen Alat Debugging Windows(Windows Debugging Tools) ) mendiagnosis kebocoran untuk masing-masing proses dengan memantau alokasi memori tumpukan.
  3. Trace Capture untuk analisis menyeluruh penggunaan RAM .
  4. Xperf juga melacak pola alokasi tumpukan.
  5. CRT Debug Heap tidak hanya melacak alokasi heap tetapi juga memungkinkan praktik pengkodean untuk meminimalkan kebocoran.
  6. Detektor Kebocoran Memori JavaScript men(JavaScript Memory Leak Detector) -debug kebocoran memori dalam kode.

Tip penggunaan

  1. Gunakan kernel HANDLE s dan penunjuk pintar lainnya untuk sumber daya Win32 dan alokasi tumpukan.
  2. Dapatkan(Get) kelas untuk manajemen sumber daya otomatis untuk alokasi kernel dari perpustakaan ATL . Standar C++ memiliki auto_ptr untuk alokasi heap.
  3. Enkapsulasi(Encapsulate COM) pointer antarmuka COM dalam "pointer pintar" dengan bantuan _com_ptr_t atau _bstr_t atau _variant_t .
  4. Pantau(Monitor) kode .NET untuk penggunaan memori yang tidak normal.
  5. Hindari(Avoid) beberapa jalur keluar untuk fungsi agar alokasi dibebaskan dari variabel di sebagian besar blok pada akhir fungsi.
  6. Gunakan(Use) pengecualian asli hanya setelah membebaskan semua alokasi di blok _finally . Bungkus(Wrap) semua tumpukan dan tangani alokasi ke dalam smart pointer untuk menggunakan pengecualian C++.
  7. Selalu panggil fungsi PropVariantClear sebelum menginisialisasi ulang atau membuang objek PROPVARIANT .

Memecahkan masalah(Troubleshoot) kebocoran memori di Windows

Sama seperti berbagai cara untuk mencegah kebocoran memori, ada berbagai cara untuk menghentikan kebocoran memori. Tetapi sebelum Anda mulai, ingatlah untuk membuat titik pemulihan sistem terlebih dahulu .

1] Tutup proses dan mulai ulang.

Jika Anda melihat proses yang tidak perlu menghabiskan terlalu banyak RAM , Anda dapat mengakhiri proses di Task Manager . Anda harus memulai ulang perangkat agar ruang kosong tersedia untuk digunakan oleh proses lain. Tanpa Restart masalah kebocoran memori tidak akan terpecahkan. Salah satu proses tertentu yang memiliki bug untuk memperlambat PC adalah Runtime Broker . Coba jika menonaktifkan itu saja berfungsi.

2] Alat Diagnostik Memori

Diagnostik Memori Windows

Untuk mengakses Alat Diagnostik Memori bawaan(Memory Diagnostic Tool) untuk Windows:

  1. Simpan semua pekerjaan penting Anda.
  2. Tekan Win + R untuk membuka jendela Run .
  3. Ketik perintah mdsched.exe di jendela Run .
  4. Mulai ulang PC.
  5. Setelah memulai ulang, lakukan pemindaian dasar atau pilih opsi ' Lanjutan(Advanced) ' seperti ' Campuran uji(Test mix) ' atau ' Hitungan lulus(Pass count) '.
  6. Tekan F10 untuk memulai tes.

Ini masih perbaikan sementara.

3] Periksa pembaruan Driver

Perbarui Perangkat Lunak Pengemudi

Driver yang kedaluwarsa menyebabkan kebocoran memori. Perbarui semua driver :

  1. Tekan Win + R dan buka jendela Run . Ketik devmgmt.msc dan tekan Enter . Ini akan membawa Anda ke Pengelola Perangkat(Device Manager) .
  2. Periksa(Check) driver yang sudah ketinggalan zaman dan perbarui semuanya.
  3. Untuk pembaruan, Anda mungkin melewatkannya, periksa di Pembaruan Windows(Windows Update) .

Ini sederhana.

4] Optimalkan kinerja

Sesuaikan untuk performa terbaik

Menyesuaikan Windows untuk kinerja akan mengatur semuanya termasuk penjadwalan prosesor dan penggunaan memori untuk menghentikan kebocoran memori. Ikuti langkah ini:

  1. Klik kanan pada ' PC Ini(This PC) ' dan pilih pengaturan ' Lanjutan(Advanced) ' di panel kiri.
  2. Di bawah tab ' Lanjutan ', buka ' (Advanced)Kinerja(Performance) ', diikuti oleh ' Pengaturan(Settings) '.
  3. Centang ' Adjust for best performance ' dan klik OK .
  4. Mulai ulang(Restart) dan periksa apakah masalah sudah teratasi.

Jika solusi sederhana ini tidak berhasil, coba solusi berikutnya.

5] Nonaktifkan Program(Programs) yang berjalan di Startup

Program pemula

Menonaktifkan program yang merepotkan adalah satu-satunya cara untuk menghilangkan masalah kebocoran memori. Buka Pengelola Tugas(Task Manager) dan nonaktifkan program pembuat masalah. Jika Anda tidak tahu program mana yang menyebabkan masalah, lakukan ini:

  1. Buka ' Pengelola Tugas(Task Manager) '.
  2. Pergi ke ' Mulai(Startup) '.
  3. Nonaktifkan program startup yang(Disable the startup programs) tidak perlu Anda jalankan secara default.

6] Defrag Hard Drive

Defragmentasi Disk

Meskipun Windows 10 melakukan ini untuk Anda secara otomatis, Anda mungkin perlu melakukan defrag hard drive sesekali untuk mengoptimalkan kinerja:

  1. Buka ' PC Ini(This PC) ' atau ' Komputer Saya(My Computer) '.
  2. Klik kanan(Right-Click) hard drive sistem (biasanya drive C:).
  3. Buka ' Alat(Tools) ' di bawah ' Properti(Properties) ' dan pilih ' Optimalkan(Optimize) '.
  4. Pilih drive yang akan didefrag dan pilih ' Analisis(Analyze) '.

Restart komputer Anda setelah fragmentasi baru.

7] ClearPage File saat dimatikan

Hal ini semakin kompleks sekarang - tapi jangan khawatir. Berikut cara menghapus File Halaman di setiap shutdown(clear the Page File at every shutdown) :

  • Ketik regedit pada Pencarian(Search) untuk meluncurkan Editor Registri(Registry Editor) .
  • Masukkan jalur ini:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
  • Ubah nilai ClearPageFileAtShutDown menjadi '1'.( ClearPageFileAtShutDown to ‘1’.)
  • Simpan perubahan dan Nyalakan ulang(Restart) perangkat.

Ini harus melakukannya. Ingatlah bahwa proses shutdown Anda akan memakan waktu lebih lama.

9] Nonaktifkan Superfetch

Layanan Windows(Windows Service) ini mengoptimalkan kinerja dengan meminimalkan waktu boot. Ini memungkinkan Windows mengelola penggunaan RAM . Hidup(Life) setelah menonaktifkan Superfetch tidak nyaman tetapi lakukan jika Anda harus. Setidaknya coba ini sendiri untuk mengisolasi masalahnya:

  1. Cari services.msc dan buka Manajer Layanan.
  2. Cari ' Superfetch ' dan klik kanan untuk membuka ' Properties '.
  3. Pilih ' Berhenti(Stop) '.
  4. Juga ' Nonaktifkan(Disable) ' layanan dari menu tarik-turun.
  5. Nyalakan kembali PC dan periksa apakah kinerjanya telah meningkat.

Aktifkan Superfetch jika yang ini tidak berfungsi.

10] Periksa malware

Gunakan perangkat lunak antivirus pihak ketiga atau Windows Defender internal Windows 10 untuk memindai dan menghilangkan malware. Pastikan(Make) antivirus terupdate untuk mendukung OS Anda agar tidak menjadi penyebab kebocoran memori.

Setiap solusi yang mungkin Anda perlukan untuk menemukan atau mencegah kebocoran memori ada di sini. Anda dapat membaca lebih lanjut tentang kebocoran memori di MSDN dan Microsoft .



About the author

Saya seorang insinyur perangkat lunak dan penjelajah. Saya memiliki pengalaman dengan Microsoft Xbox 360 dan Google Explorer. Saya dapat memberikan rekomendasi ahli untuk alat pengembangan perangkat lunak tertentu, serta membantu orang memecahkan masalah umum Explorer.



Related posts