Kantor

Menemukan dan memperbaiki Kebocoran Memori di Windows 10/8/7

Cara cek / tes microphone pc / laptop serta setting noise microphone

Cara cek / tes microphone pc / laptop serta setting noise microphone

Daftar Isi:

Anonim

Memory Leak adalah kesalahan penempatan sumber daya dalam program komputer karena alokasi memori yang salah. Ini terjadi ketika lokasi RAM tidak digunakan tetap belum pernah dirilis. Kebocoran memori tidak menjadi bingung dengan kebocoran ruang, yang mengacu pada program yang menggunakan lebih banyak RAM daripada yang diperlukan. Kebocoran memori pada sistem Windows 10/8/7 dikatakan telah terjadi ketika memori tidak dapat diakses meskipun tidak sedang digunakan.

Memori Kebocoran di Windows 10

Sebelum Anda mulai, Anda harus tahu bahwa Memori bocor adalah masalah perangkat lunak untuk debug - misalnya di Java, JavaScript, C / C ++, Windows, dll. Secara fisik mengganti RAM atau hard disk tidak diperlukan.

Mengapa itu buruk

Ini jelas sebuah memori kebocoran itu buruk karena itu adalah bug, cacat dalam sistem. Tapi mari kita cari tahu bagaimana tepatnya itu mempengaruhi sistem:

  1. Karena memori tidak dibebaskan bahkan ketika tidak digunakan, itu menghasilkan penipisan memori.
  2. Kelelahan hasil memori dalam penuaan perangkat lunak.
  3. Mengurangi ketersediaan memori menyebabkan peningkatan waktu respons dan kinerja yang buruk oleh sistem.
  4. Pembocoran memori yang tidak diperiksa pada akhirnya dapat menyebabkan macetnya aplikasi.

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

Menemukan kebocoran

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

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

Alokasi memori

Ada berbagai mode 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. HealAlloc berfungsi untuk menumpuk alokasi memori. C / C ++ setara runtime adalah malloc dan baru.
  2. Fungsi VirtualAlloc untuk alokasi langsung dari OS.
  3. API Kernel32 untuk menyimpan memori kernel untuk aplikasi. Contoh, CreateFile, CreateThread.
  4. API User32 dan API Gdi32.

Mencegah kebocoran memori

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

Kebiasaan pemantauan

Anda perlu mengawasi penggunaan RAM yang abnormal 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 dengan mudah memantau penggunaan sumber daya.

Alat Microsoft untuk mendiagnosis kebocoran memori

Berbagai alat mendiagnosis kebocoran memori untuk berbagai mode alokasi:

  1. Pemindai Aplikasi mendiagnosis kebocoran tumpukan.
  2. UMDH (komponen Windows Debugging Tools) mendiagnosis kebocoran untuk proses individual dengan memantau alokasi memori heap.
  3. Trace Capture untuk analisis menyeluruh penggunaan RAM.
  4. Xperf juga melacak pola alokasi heap.
  5. Debug Debet CRT tidak hanya melacak alokasi tumpukan tetapi juga memungkinkan praktik pengkodean untuk meminimalkan kebocoran.
  6. Memori JavaScript Kebocoran Pendeteksian debugs memory bocor dalam kode.

Kiat Penggunaan

  1. Gunakan kernel HANDLE dan pointer pintar lainnya untuk sumber daya Win32 dan tumpukan alokasi.
  2. Dapatkan kelas untuk pengelolaan sumber daya otomatis untuk alokasi kernel dari perpustakaan ATL. C ++ standard memiliki auto_ptr untuk alokasi heap.
  3. Encapsulate COM interface pointers dalam "smart pointer" dengan bantuan _com_ptr_t atau _bstr_t atau _variant_t .
  4. Pantau kode.NET untuk penggunaan memori abnormal.
  5. Hindari beberapa jalur keluar untuk fungsi agar alokasi dibebaskan dari variabel di sebagian besar blok pada akhir fungsi.
  6. Gunakan hanya pengecualian asli setelah membebaskan semua alokasi dalam blok terakhir. Bungkus semua tumpukan dan alokasikan alokasi ke pointer pintar untuk menggunakan pengecualian C ++.
  7. Selalu hubungi fungsi PropVariantClear sebelum reinitializing 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.

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 perlu me-restart perangkat sehingga ruang yang dibebaskan tersedia untuk digunakan oleh proses lain. Tanpa masalah kebocoran memori Restart tidak akan terpecahkan. Satu proses khusus yang memiliki bug untuk memperlambat PC adalah Runtime Broker. Coba jika menonaktifkan itu sendiri berfungsi.

2] Alat Diagnostik Memori

Untuk mengakses Alat Diagnostik Memori bawaan untuk Windows:

  1. Simpan semua pekerjaan penting Anda.
  2. Tekan Menang + R untuk membuka jendela Jalankan .
  3. Ketik perintah mdsched.exe di jendela Jalankan .
  4. Hidupkan ulang PC.
  5. Setelah mulai ulang, lakukan pemindaian dasar atau gunakan opsi ` Lanjut ` seperti ` Uji campuran ` atau ` Jumlah kelulusan `.
  6. Tekan F10 untuk memulai pengujian.

Ini masih merupakan perbaikan sementara.

3] Periksa pembaruan Driver

Driver yang kedaluwarsa menyebabkan kebocoran memori. Selalu perbarui semua driver:

  1. Tekan Win + R dan buka jendela Jalankan . 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

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

  1. Klik kanan pada ` PC ini ` dan pilih pengaturan ` Lanjut ` di sebelah kiri.
  2. Di bawah ` Lanjut `tab, pergi ke` Kinerja `, diikuti oleh` Pengaturan `.
  3. Periksa` Sesuaikan untuk kinerja terbaik `dan klik OK .
  4. Mulai ulang dan periksa apakah masalah telah terpecahkan.

Jika solusi sederhana ini tidak berfungsi, coba solusi berikutnya.

5] Nonaktifkan Program yang dijalankan di Startup

Menonaktifkan program yang merepotkan adalah satu-satunya cara untuk menyingkirkan masalah kebocoran memori. Buka Pengelola Tugas dan nonaktifkan program pengacau. Jika Anda tidak tahu program mana yang membuat masalah, lakukan ini:

  1. Buka ` Task Manager `.
  2. Buka ` Startup `.
  3. Nonaktifkan program startup yang Anda tidak perlu jalankan secara default.

6] Defrag Hard Drive

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 ` My Computer `.
  2. Klik kanan hard drive sistem (biasanya C: drive).
  3. Ke ` Tools `di bawah` Properti `dan pilih` Optimalkan `.
  4. Pilih drive untuk men-defrag dan pilih` Analisis `.

Restart komputer Anda setelah fragmentasi baru.

7] ClearPage File saat shutdown

Sekarang semakin rumit - tapi jangan khawatir. Berikut cara membersihkan File Halaman pada setiap pematian:

  1. Ketik regedit pada Pencarian untuk meluncurkan Editor Registri.
  2. Masukkan jalur ini: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
  3. Ubah nilai dari ClearPageFileAtShutDown ke `1`.
  4. Simpan perubahan dan Nyalakan ulang perangkat.

Ini harus melakukannya.

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 lakukanlah jika Anda harus. Setidaknya cobalah ini sendiri untuk mengisolasi masalah:

  1. Cari services.msc dan pergi ke Manajer Layanan.
  2. Cari ` Superfetch ` dan klik kanan untuk pergi ke ` Properti `.
  3. Pilih ` Stop `.
  4. Juga ` Nonaktifkan ` layanan dari menu drop-down.
  5. Mulai ulang 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 10`s Windows Defender internal untuk memindai dan menghilangkan malware. Pastikan antivirus diperbarui untuk mendukung OS Anda sehingga akhirnya tidak menjadi alasan 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 pada MSDN dan Microsoft.