Temukan dan perbaiki Kebocoran Memori di Windows 10

Sebuah Memory Leak adalah salah penempatan sumber daya dalam sebuah program komputer karena alokasi memori rusak. Itu terjadi ketika lokasi RAM yang tidak digunakan tetap tidak dirilis. Kebocoran memori tidak sama dengan kebocoran ruang, yang mengacu pada program yang menggunakan RAM lebih dari yang diperlukan. Kebocoran memori pada sistem Windows 10/8/7 dikatakan telah terjadi ketika memori tidak dapat diakses meskipun tidak sedang digunakan.

Kebocoran Memori di Windows 10

Sebelum Anda mulai, Anda harus tahu bahwa kebocoran memori adalah masalah perangkat lunak yang perlu 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 itu buruk karena ini adalah bug, cacat dalam sistem. Tapi mari kita cari tahu bagaimana sebenarnya pengaruhnya terhadap sistem:

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

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

Menemukan lokasi kebocoran

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

  1. Peneguhan : Menentukan apakah telah terjadi kebocoran.
  2. Menemukan kebocoran memori mode-kernel : Menemukan lokasi kebocoran yang disebabkan oleh komponen driver mode-kernel.
  3. Menemukan kebocoran memori mode Pengguna : Menemukan lokasi kebocoran yang disebabkan oleh driver atau aplikasi mode pengguna.

Alokasi memori

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

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

Mencegah kebocoran memori

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

Memantau kebiasaan

Kebocoran Memori di Windows 10

Anda perlu mengawasi penggunaan RAM yang tidak normal oleh program dan aplikasi individual. 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 memantau penggunaan sumber daya dengan mudah.

Alat Microsoft untuk mendiagnosis kebocoran memori

Berbagai alat mendiagnosis kebocoran memori untuk berbagai mode alokasi:

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

Tips Penggunaan

  1. Gunakan kernel HANDLE dan penunjuk cerdas lainnya untuk sumber daya Win32 dan alokasi heap.
  2. Dapatkan kelas untuk manajemen sumber daya otomatis untuk alokasi kernel dari perpustakaan ATL. Standar C ++ memiliki auto_ptr untuk alokasi heap.
  3. Enkapsulasi petunjuk antarmuka COM dalam "petunjuk cerdas" dengan bantuan _com_ptr_t atau _bstr_t atau _variant_t .
  4. Pantau kode .NET untuk penggunaan memori yang tidak normal.
  5. Hindari beberapa jalur keluar untuk fungsi agar alokasi dibebaskan dari variabel di sebagian besar blok pada akhir fungsi.
  6. Gunakan pengecualian asli hanya setelah membebaskan semua alokasi di blok _finally. Gabungkan semua heap 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 kebocoran memori di Windows

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

1] Tutup proses dan mulai ulang.

Jika Anda melihat proses yang tidak perlu memakan terlalu banyak RAM, Anda dapat mengakhiri proses tersebut di Pengelola Tugas. Anda perlu memulai ulang perangkat agar ruang kosong tersedia untuk digunakan oleh proses lain. Tanpa masalah kebocoran memori Restart tidak akan terpecahkan. Salah satu proses tertentu yang memiliki bug untuk memperlambat PC adalah Runtime Broker. Coba jika menonaktifkannya saja sudah berhasil.

2] Alat Diagnostik Memori

Diagnostik Memori Windows

Untuk mengakses Alat Diagnostik Memori bawaan untuk Windows:

  1. Simpan semua pekerjaan penting Anda.
  2. Tekan Win + R untuk membuka jendela Run .
  3. Ketik perintah mdsched.exe di jendela Jalankan .
  4. Mulai ulang PC.
  5. Setelah restart, lakukan scan dasar atau pilih opsi ' Advanced ' seperti ' Test mix ' atau ' Pass count '.
  6. Tekan F10 untuk memulai pengujian.

Ini masih perbaikan sementara.

3] Periksa pembaruan Driver

Perbarui Perangkat Lunak Driver

Driver yang ketinggalan zaman menyebabkan kebocoran memori. Selalu perbarui semua driver:

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

Ini sederhana.

4] Mengoptimalkan kinerja

Sesuaikan untuk performa terbaik

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

  1. Klik kanan pada ' PC ini ' dan pilih pengaturan ' Lanjutan ' di panel kiri.
  2. Di bawah tab ' Advanced ', buka ' Performance ', diikuti oleh ' Settings '.
  3. Centang ' Sesuaikan untuk kinerja terbaik ' dan klik OK .
  4. Mulai ulang dan periksa apakah masalah sudah teratasi.

Jika solusi sederhana ini tidak berhasil, coba solusi berikutnya.

5] Nonaktifkan Program yang berjalan pada Startup

Program startup

Menonaktifkan program bermasalah adalah satu-satunya cara untuk mengatasi masalah kebocoran memori. Buka Task Manager dan nonaktifkan program pembuat masalah. Jika Anda tidak tahu program mana yang menyebabkan masalah, lakukan ini:

  1. Buka ' Task Manager '.
  2. Buka ' Startup '.
  3. Nonaktifkan program startup yang 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 ' atau ' Komputer Saya '.
  2. Klik kanan hard drive sistem (biasanya drive C:).
  3. Buka ' Alat ' di bawah ' Properti ' dan pilih ' Optimalkan '.
  4. Pilih drive yang akan didefrag dan pilih ' Analisis '.

Restart komputer Anda setelah fragmentasi baru.

7] File ClearPage saat dimatikan

Ini semakin kompleks sekarang - tapi jangan khawatir. Berikut cara menghapus File Halaman di setiap shutdown:

  • Ketik regedit pada Pencarian untuk meluncurkan Editor Registri.
  • Masukkan jalur ini:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
  • Ubah nilai ClearPageFileAtShutDown menjadi '1'.
  • Simpan perubahan dan Mulai ulang perangkat.

Ini harus dilakukan. Ingatlah bahwa proses mematikan Anda akan memakan waktu lebih lama.

9] Nonaktifkan Superfetch

Layanan Windows ini mengoptimalkan kinerja dengan meminimalkan waktu boot. Ini memungkinkan Windows mengelola penggunaan RAM. Hidup 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 menuju ke ' Properties '.
  3. Pilih ' Stop '.
  4. Juga ' Nonaktifkan ' layanan dari menu drop-down.
  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 antivirus diperbarui untuk mendukung OS Anda sehingga 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.

Original text


Kebocoran Memori di Windows 10