Cari dan perbaiki Memory Leaks di Windows 10/8/7

Daftar Isi:

Cari dan perbaiki Memory Leaks di Windows 10/8/7
Cari dan perbaiki Memory Leaks di Windows 10/8/7

Video: Cari dan perbaiki Memory Leaks di Windows 10/8/7

Video: Cari dan perbaiki Memory Leaks di Windows 10/8/7
Video: Responsive Design with Bootstrap by Neel Mehta - YouTube 2024, April
Anonim

SEBUAH Kebocoran Memori adalah kesalahan penempatan sumber daya dalam program komputer karena alokasi memori yang salah. Itu 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 terjadi ketika memori tidak dapat diakses meskipun tidak sedang digunakan.

Memori Kebocoran di Windows 10

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

Image
Image

Kenapa ini buruk

Jelas kebocoran kehabisan memori 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 mengarah ke peningkatan waktu respons dan kinerja yang buruk oleh sistem.
  4. Pembocoran memori yang tidak diperiksa akhirnya dapat menyebabkan macetnya aplikasi.

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

Menemukan kebocoran

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

  1. Afirmasi: Menentukan apakah kebocoran telah terjadi.
  2. Menemukan kebocoran memori mode-Kernel: 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. Persamaan runtime C / C ++ 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 ada beberapa cara untuk mencegah kebocoran memori.

Pemantauan kebiasaan

Image
Image

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 tambahkan 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. Aplikasi Verifier 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 Debug CRT tidak hanya melacak alokasi tumpukan tetapi juga memungkinkan praktik pengkodean untuk meminimalkan kebocoran.
  6. Memory Memory Leak Detector membongkar kebocoran memori dalam kode.

Kiat Penggunaan

  1. Gunakan kernel MENANGANIdan petunjuk cerdas lainnya untuk sumber daya Win32 dan alokasi tumpukan.
  2. Dapatkan kelas untuk pengelolaan sumber daya otomatis untuk alokasi kernel dari pustaka ATL. C ++ standar auto_ptr untuk mengalokasikan alokasi.
  3. Encapsulate COM interface pointer 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 dapat dibebaskan dari variabel di sebagian besar blok pada akhir fungsi.
  6. Gunakan pengecualian asli hanya setelah membebaskan semua alokasi di blok _finly. Bungkus semua tumpukan dan alokasikan alokasi ke pointer pintar untuk menggunakan pengecualian C ++.
  7. Selalu hubungi PropVariantClear berfungsi 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 mengambil 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 terselesaikan. 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:
Untuk mengakses Alat Diagnostik Memori bawaan untuk Windows:
  1. Simpan semua pekerjaan penting Anda.
  2. tekan Menangkan + R untuk membuka Menjalankan jendela.
  3. Ketik perintah mdsched.exe dalam Menjalankan jendela.
  4. Nyalakan kembali PC.
  5. Setelah memulai ulang, lakukan pemindaian dasar atau lakukan ‘ Maju'Pilihan seperti ‘ Uji coba' atau ' Hitung lintasan ’.
  6. tekan F10 untuk memulai tes.

Ini masih perbaikan sementara.

3] Periksa pembaruan Driver

Driver yang kedaluwarsa menyebabkan kebocoran memori. Biarkan semua driver diperbarui:
Driver yang kedaluwarsa menyebabkan kebocoran memori. Biarkan semua driver diperbarui:
  1. tekan Menangkan + R dan buka Menjalankan jendela. Mengetik devmgmt.msc dan tekan Enter. Ini akan membawa Anda ke Pengaturan perangkat.
  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 ini:
Menyesuaikan Windows untuk kinerja akan mengatur segalanya termasuk penjadwalan prosesor dan penggunaan memori untuk menghentikan kebocoran memori. Ikuti langkah ini:
  1. Klik kanan pada ' PC ini ’Dan pilih‘ Maju ’Di panel kiri.
  2. Di bawah ' Maju ’Tab, buka‘ Kinerja', diikuti oleh ' Pengaturan ’.
  3. Periksa ‘ Sesuaikan untuk kinerja terbaik ’Dan klik baik.
  4. Mulai ulang dan periksa apakah masalah telah diselesaikan.

Jika solusi sederhana ini tidak berhasil, coba solusi berikutnya.

5] Nonaktifkan Program yang dijalankan saat Startup

Menonaktifkan program yang merepotkan adalah satu-satunya cara untuk menghilangkan masalah kebocoran memori. Buka Pengelola Tugas dan nonaktifkan program pengacau. Jika Anda tidak tahu program mana yang membuat masalah, lakukan ini:
Menonaktifkan program yang merepotkan adalah satu-satunya cara untuk menghilangkan masalah kebocoran memori. Buka Pengelola Tugas dan nonaktifkan program pengacau. Jika Anda tidak tahu program mana yang membuat masalah, lakukan ini:
  1. Pergi ke ' Pengelola tugas ’.
  2. Pergi ke ' Memulai ’.
  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:
Meskipun Windows 10 melakukan ini untuk Anda secara otomatis, Anda mungkin perlu melakukan defrag hard drive sesekali untuk mengoptimalkan kinerja:
  1. Pergi ke ' PC ini' atau ' Komputer saya ’.
  2. Klik kanan hard drive sistem (biasanya C: drive).
  3. Pergi ke ' Alat-alat' dibawah ' Properties ‘Dan pilih‘ Optimalkan ’.
  4. Pilih drive untuk men-defrag dan pilih ' Menganalisa ’.

Restart komputer Anda setelah fragmentasi baru.

7] ClearPage File saat shutdown

Kini semakin rumit - tetapi jangan khawatir. Berikut cara membersihkan File Halaman pada setiap penutupan:

  1. Mengetik regedit di Search untuk meluncurkan Registry Editor.
  2. Masukkan jalur ini: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
  3. Ubah nilai dari ClearPageFileAtShutDown ke ‘1’.
  4. Simpan perubahan dan Mulai 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. Pencarian services.msc dan pergi ke Manajer Layanan.
  2. Mencari ' Superfetch ’Dan klik kanan untuk pergi ke‘ Properties ’.
  3. Pilih ‘ Berhenti ’.
  4. Juga ‘ Nonaktifkan ’Layanan dari menu drop-down.
  5. Restart PC dan periksa apakah kinerjanya telah membaik.

Aktifkan Superfetch jika yang ini tidak berfungsi.

10] Periksa malware

Gunakan perangkat lunak antivirus pihak ketiga atau Windows 10's Windows Defender di rumah untuk memindai dan menghilangkan malware. Pastikan antivirus diperbarui untuk mendukung OS Anda sehingga tidak akan menjadi penyebab kebocoran memori.

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

Posting terkait:

  • Perbaiki Kesalahan Windows Stop atau Blue Screen of Death
  • Mengapa Windows menunjukkan lebih sedikit RAM daripada yang diinstal?
  • Jadikan Windows 10 Mulai, Berjalan, Shutdown Lebih Cepat
  • Batas Memori Fisik dalam file Crash Dump untuk Windows 10/8/7
  • Kompresi Memori di Windows 10

Direkomendasikan: