Ingatan

Cara mencari dan memperbaiki Memory Leaks di Windows 10

Cara mencari dan memperbaiki Memory Leaks di Windows 10

A Kebocoran memori adalah salah tempat sumber dalam program komputer kerana peruntukan memori yang salah. Ia berlaku apabila lokasi RAM yang tidak digunakan masih belum dikeluarkan. Kebocoran memori tidak boleh dikelirukan dengan kebocoran ruang, yang merujuk kepada program yang menggunakan lebih banyak RAM daripada yang diperlukan. Kebocoran memori pada sistem Windows 10/8/7 dikatakan berlaku ketika memori tidak dapat diakses walaupun tidak digunakan.

Kebocoran Memori di Windows 10

Sebelum anda memulakan, anda harus tahu bahawa kebocoran memori adalah masalah perisian untuk disahpijat - misalnya di Java, JavaScript, C / C ++, Windows, dll. Tidak perlu mengganti RAM atau cakera keras secara fizikal.

Kenapa teruk

Jelas sekali kebocoran memori buruk kerana bug, kekurangan sistem. Tetapi mari kita ketahui bagaimana sebenarnya ia mempengaruhi sistem:

  1. Oleh kerana memori tidak dibebaskan walaupun tidak digunakan, ia mengakibatkan kehabisan memori.
  2. Kehabisan memori mengakibatkan penuaan perisian.
  3. Memori yang tersedia berkurang menyebabkan peningkatan masa tindak balas dan prestasi yang buruk oleh sistem.
  4. Kebocoran memori yang tidak diperiksa akhirnya boleh menyebabkan kerosakan aplikasi.

Untuk mengenal pasti kebocoran memori, pengaturcara perlu mempunyai akses ke kod sumber program.

Mengesan kebocoran

Untuk menyelesaikan masalah, kita perlu mengenalinya terlebih dahulu. Langkah asas untuk mengesan kebocoran memori adalah:

  1. Peneguhan: Menentukan sama ada kebocoran telah berlaku.
  2. Mencari kebocoran memori mod Kernel: Mencari kebocoran yang disebabkan oleh komponen pemacu mod kernel.
  3. Mencari kebocoran memori mod pengguna: Mencari kebocoran yang disebabkan oleh pemacu mod pengguna atau aplikasi.

Peruntukan memori

Terdapat pelbagai mod di mana aplikasi memperuntukkan RAM. Sekiranya ruang tidak dibebaskan setelah digunakan, kebocoran memori akan berlaku tanpa mengira mod peruntukan. Beberapa corak peruntukan biasa adalah:

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

Mencegah kebocoran memori

Kita semua tahu pencegahan lebih baik daripada menyembuhkan jadi berikut adalah beberapa cara untuk mengelakkan kebocoran memori.

Tabiat pemantauan

Anda perlu mengawasi penggunaan RAM yang tidak normal oleh setiap program dan aplikasi. Anda boleh pergi ke Windows Task Manager dengan menekan CTRL + SHIFT + ESC dan tambahkan lajur seperti Pemegang, Objek Pengguna, Objek GDI, dll.

Ini akan membantu anda memantau penggunaan sumber dengan mudah.

Baca: Apakah Jenis-Jenis Memori dalam komputer?

Alat Microsoft untuk mendiagnosis kebocoran memori

Pelbagai alat mendiagnosis kebocoran memori untuk pelbagai mod peruntukan:

  1. Pengesah Aplikasi mendiagnosis kebocoran timbunan.
  2. UMDH (komponen Windows Debugging Tools) mendiagnosis kebocoran untuk proses individu dengan memantau peruntukan memori timbunan.
  3. Trace Capture untuk analisis penggunaan RAM secara menyeluruh.
  4. Xperf juga menjejaki corak peruntukan timbunan.
  5. CRT Debug Heap tidak hanya menjejaki peruntukan timbunan tetapi juga memungkinkan amalan pengekodan untuk mengurangkan kebocoran.
  6. JavaScript Memory Leak Detector menebus kebocoran memori dalam kod.

Petua Penggunaan

  1. Gunakan kernel TANGANs dan penunjuk pintar lain untuk sumber Win32 dan peruntukan timbunan.
  2. Dapatkan kelas untuk pengurusan sumber automatik untuk peruntukan kernel dari perpustakaan ATL. Piawaian C ++ mempunyai auto_ptr untuk peruntukan timbunan.
  3. Merangkum penunjuk antara muka COM dalam "penunjuk pintar" dengan bantuan _com_ptr_t atau _bstr_t atau _variant_t.
  4. Pantau .Kod BERSIH untuk penggunaan memori yang tidak normal.
  5. Elakkan beberapa jalan keluar untuk fungsi untuk membiarkan peruntukan dibebaskan dari pemboleh ubah di kebanyakan blok pada akhir fungsi.
  6. Gunakan pengecualian asli hanya setelah membebaskan semua peruntukan di blok _finally. Balut semua timbunan dan atur peruntukan menjadi penunjuk pintar untuk menggunakan pengecualian C ++.
  7. Sentiasa panggil PropVariantClear berfungsi sebelum memulakan semula atau membuang objek PROPVARIAN.

Menyelesaikan masalah kebocoran memori di Windows

Sama seperti pelbagai cara untuk mencegah kebocoran memori, terdapat pelbagai cara untuk menghentikan kebocoran memori. Tetapi sebelum anda memulakan, ingatlah untuk membuat titik pemulihan sistem terlebih dahulu.

1] Tutup proses dan mulakan semula.

Sekiranya anda melihat proses yang tidak perlu mengambil terlalu banyak RAM, anda boleh mengakhiri proses tersebut di Task Manager. Anda perlu menghidupkan semula peranti supaya ruang yang dibebaskan tersedia untuk digunakan oleh proses lain. Tanpa Memulakan semula masalah kebocoran memori tidak akan diselesaikan. Salah satu proses tertentu yang mempunyai bug untuk melambatkan PC adalah Runtime Broker. Cuba jika mematikannya berfungsi sahaja.

2] Alat Diagnostik Memori

Untuk mengakses Alat Diagnostik Memori terbina dalam untuk Windows:

  1. Simpan semua kerja penting anda.
  2. Tekan Menang + R untuk membuka Lari tingkap.
  3. Taip arahan mdsched.exe di dalam Lari tingkap.
  4. Mulakan semula PC.
  5. Selepas dimulakan semula, lakukan imbasan asas atau cari 'Mahir'pilihan seperti'Campuran ujian'atau'Kiraan lulus'.
  6. Tekan F10 untuk memulakan ujian.

Ini masih merupakan penyelesaian sementara.

3] Periksa kemas kini Pemacu

Pemacu ketinggalan zaman menyebabkan kebocoran memori. Pastikan semua pemandu dikemas kini:

  1. Tekan Menang + R dan buka Lari tingkap. Jenis devmgmt.msc dan tekan Enter. Ia akan membawa anda ke Pengurus peranti.
  2. Periksa pemacu usang dan kemas kini semuanya.
  3. Untuk kemas kini, anda mungkin terlepas, periksa Windows Update.

Ini mudah.

4] Mengoptimumkan prestasi

Menyelaraskan Windows untuk prestasi akan menguruskan segala-galanya termasuk penjadualan pemproses dan penggunaan memori untuk menghentikan kebocoran memori. Ikut langkah-langkah ini:

  1. Klik kanan pada 'PC ini'dan pilih'Mahir'tetapan di panel kiri.
  2. Di bawah 'Mahir'tab, pergi ke'Persembahan', diikuti oleh 'Tetapan'.
  3. Periksa 'Sesuaikan untuk prestasi terbaik'dan klik okey.
  4. Mulakan semula dan periksa sama ada masalah itu diselesaikan.

Sekiranya penyelesaian mudah ini tidak berjaya, cubalah penyelesaian seterusnya.

5] Lumpuhkan Program yang dijalankan pada Permulaan

Melumpuhkan program yang menyusahkan adalah satu-satunya cara untuk menghilangkan masalah kebocoran memori. Pergi ke Task Manager dan lumpuhkan program membuat masalah. Sekiranya anda tidak tahu program mana yang menimbulkan masalah, lakukan ini:

  1. Pergi ke 'Pengurus Tugas'.
  2. Pergi ke 'Memulakan'.
  3. Lumpuhkan program permulaan yang tidak perlu anda jalankan secara lalai.

6] Pemacu Keras Defrag

Walaupun Windows 10 melakukan ini untuk anda secara automatik, anda mungkin perlu melakukan defrag pada cakera keras sekali-sekala untuk mengoptimumkan prestasi:

  1. Pergi ke 'PC ini'atau'Komputer saya'.
  2. Klik kanan pada cakera keras sistem (biasanya C: drive).
  3. Pergi ke 'Alat'bawah'Hartanah'dan pilih'Optimumkan'.
  4. Pilih pemacu untuk defrag dan pilih 'Menganalisis'.

Mulakan semula komputer anda selepas pemecahan baru.

7] Fail ClearPage semasa ditutup

Kini semakin rumit - tetapi jangan risau. Inilah cara membersihkan Fail Halaman pada setiap penutupan:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management

Ini semestinya melakukannya. Ingatlah bahawa proses penutupan anda memerlukan sedikit masa lagi.

9] Lumpuhkan Superfetch

Perkhidmatan Windows ini mengoptimumkan prestasi dengan meminimumkan masa boot. Ia membolehkan Windows menguruskan penggunaan RAM. Kehidupan selepas melumpuhkan Superfetch tidak mudah tetapi lakukanlah jika anda mesti. Sekurang-kurangnya cubalah ini sahaja untuk mengasingkan masalah:

  1. Cari perkhidmatan.msc dan pergi ke Pengurus Perkhidmatan.
  2. Cari 'Superfetch'dan klik kanan untuk pergi ke'Hartanah'.
  3. Pilih 'Berhenti'.
  4. Juga 'Lumpuhkan'perkhidmatan dari menu lungsur turun.
  5. Mulakan semula PC dan periksa sama ada prestasinya bertambah baik.

Dayakan Superfetch jika ini tidak berfungsi.

10] Periksa perisian hasad

Gunakan perisian antivirus pihak ketiga atau Windows Defender dalaman 10 untuk mengimbas dan menghilangkan perisian hasad. Pastikan antivirus dikemas kini untuk menyokong OS anda agar tidak menjadi alasan kebocoran memori.

Setiap penyelesaian yang mungkin anda perlukan untuk mencari atau mencegah kebocoran memori ada di sini. Anda boleh membaca lebih lanjut mengenai kebocoran memori di MSDN dan Microsoft.

Cara menukar butang tetikus Kiri & Kanan pada PC Windows 10
Sudah menjadi kebiasaan bahawa semua peranti tetikus komputer dirancang secara ergonomik untuk pengguna tangan kanan. Tetapi ada peranti tetikus yang ...
Tiru klik Tetikus dengan melayang menggunakan Mouse Tanpa Klik di Windows 10
Menggunakan tetikus atau papan kekunci dalam keadaan salah penggunaan berlebihan boleh menyebabkan banyak masalah kesihatan, termasuk ketegangan, sind...
Tambahkan isyarat Tetikus ke Windows 10 menggunakan alat percuma ini
Dalam beberapa tahun kebelakangan ini komputer dan sistem operasi telah banyak berkembang. Ada saat ketika pengguna harus menggunakan perintah untuk m...