Tìm và sửa lỗi Rò rỉ bộ nhớ trong Windows 10/8/7

Mục lục:

Tìm và sửa lỗi Rò rỉ bộ nhớ trong Windows 10/8/7
Tìm và sửa lỗi Rò rỉ bộ nhớ trong Windows 10/8/7

Video: Tìm và sửa lỗi Rò rỉ bộ nhớ trong Windows 10/8/7

Video: Tìm và sửa lỗi Rò rỉ bộ nhớ trong Windows 10/8/7
Video: Office 365 MIỄN PHÍ tự động gia hạn Vĩnh Viễn - YouTube 2024, Có thể
Anonim

A Bộ nhớ bị rò rỉ là một sự thay thế tài nguyên trong một chương trình máy tính do sự phân bổ bộ nhớ bị lỗi. Nó xảy ra khi một vị trí RAM không được sử dụng vẫn chưa được phát hành. Một rò rỉ bộ nhớ không được nhầm lẫn với một rò rỉ không gian, trong đó đề cập đến một chương trình sử dụng nhiều RAM hơn cần thiết. Một rò rỉ bộ nhớ trên hệ thống Windows 10/8/7 được cho là đã xảy ra khi bộ nhớ không thể truy cập được mặc dù không được sử dụng.

Rò rỉ bộ nhớ trong Windows 10

Trước khi bạn bắt đầu, bạn nên biết rằng rò rỉ bộ nhớ là một vấn đề phần mềm để gỡ lỗi - ví dụ trong Java, JavaScript, C / C ++, Windows, vv. Không cần thay thế RAM hoặc đĩa cứng.

Image
Image

Tại sao nó xấu

Rõ ràng là một rò rỉ bộ nhớ là xấu bởi vì nó là một lỗi, một lỗ hổng trong hệ thống. Nhưng hãy tìm hiểu chính xác nó ảnh hưởng như thế nào đến hệ thống:

  1. Kể từ khi bộ nhớ không được giải phóng ngay cả khi không sử dụng, nó dẫn đến sự suy giảm bộ nhớ.
  2. Sự cạn kiệt kết quả bộ nhớ trong quá trình lão hóa phần mềm.
  3. Giảm bộ nhớ có sẵn dẫn đến tăng thời gian phản hồi và hiệu năng kém của hệ thống.
  4. Rò rỉ bộ nhớ không được kiểm soát cuối cùng có thể dẫn đến sự cố của một ứng dụng.

Để xác định rò rỉ bộ nhớ, một lập trình viên cần có quyền truy cập vào mã nguồn của chương trình.

Xác định vị trí rò rỉ

Để giải quyết vấn đề, trước tiên chúng ta cần xác định nó. Các bước cơ bản để xác định vị trí rò rỉ bộ nhớ là:

  1. Khẳng định: Xác định xem có bị rò rỉ hay không.
  2. Tìm rò rỉ bộ nhớ chế độ lõi: Xác định vị trí rò rỉ do thành phần trình điều khiển chế độ lõi gây ra.
  3. Tìm rò rỉ bộ nhớ chế độ người dùng: Xác định vị trí rò rỉ do trình điều khiển chế độ người dùng hoặc ứng dụng gây ra.

Cấp phát bộ nhớ

Có các chế độ khác nhau trong đó các ứng dụng phân bổ RAM. Nếu không gian không được giải phóng sau khi sử dụng, rò rỉ bộ nhớ sẽ xảy ra bất kể chế độ phân bổ. Một số mẫu phân bổ chung là:

  1. HealAlloc chức năng phân bổ bộ nhớ heap. Tương đương thời gian chạy C / C ++ là malloc và mới.
  2. Chức năng VirtualAlloc để phân bổ trực tiếp từ hệ điều hành.
  3. Các API Kernel32 để giữ bộ nhớ hạt nhân cho ứng dụng. Ví dụ, CreateFile, CreateThread.
  4. API User32 và API Gdi32.

Ngăn chặn rò rỉ bộ nhớ

Chúng ta đều biết phòng ngừa tốt hơn chữa bệnh, vì vậy đây là một số cách để ngăn chặn rò rỉ bộ nhớ.

Thói quen giám sát

Image
Image

Bạn cần chú ý đến việc sử dụng RAM bất thường bởi các chương trình và ứng dụng riêng lẻ. Bạn có thể vào Windows Task Manager bằng cách nhấn CTRL + SHIFT + ESC và thêm các cột như Handles, User Objects, GDI Objects, v.v.

Điều này sẽ giúp bạn dễ dàng theo dõi việc sử dụng tài nguyên.

Microsoft công cụ để chẩn đoán rò rỉ bộ nhớ

Các công cụ khác nhau chẩn đoán rò rỉ bộ nhớ cho các chế độ phân bổ khác nhau:

  1. Ứng dụng Verifier chẩn đoán rò rỉ đống.
  2. UMDH (một thành phần của Windows Debugging Tools) chẩn đoán rò rỉ cho các tiến trình riêng lẻ bằng cách theo dõi phân bổ bộ nhớ heap.
  3. Trace Capture để phân tích kỹ lưỡng việc sử dụng RAM.
  4. Xperf cũng theo dõi các mẫu phân bổ heap.
  5. CRT Debug Heap không chỉ theo dõi phân bổ đống mà còn cho phép thực hành mã hóa để giảm thiểu rò rỉ.
  6. Trình phát hiện rò rỉ bộ nhớ JavaScript gỡ lỗi rò rỉ bộ nhớ trong mã.

Mẹo sử dụng

  1. Sử dụng hạt nhân XỬ LÝs và các con trỏ thông minh khác cho tài nguyên Win32 và phân bổ đống.
  2. Nhận các lớp để quản lý tài nguyên tự động để phân bổ hạt nhân từ thư viện ATL. Tiêu chuẩn C ++ có auto_ptr cho phân bổ heap.
  3. Đóng gói các con trỏ giao diện COM trong "con trỏ thông minh" với sự trợ giúp của _com_ptr_t hoặc là _bstr_t hoặc là _variant_t.
  4. Theo dõi mã.NET để sử dụng bộ nhớ bất thường.
  5. Tránh nhiều đường dẫn thoát cho các hàm để cho phép phân bổ được giải phóng khỏi các biến trong hầu hết các khối vào cuối hàm.
  6. Chỉ sử dụng ngoại lệ gốc sau khi giải phóng tất cả các phân bổ trong khối _finally. Gói tất cả phân vùng và xử lý phân bổ vào con trỏ thông minh để sử dụng ngoại lệ C ++.
  7. Luôn gọi PropVariantClear chức năng trước khi reinitializing hoặc loại bỏ một đối tượng PROPVARIANT.

Khắc phục sự cố rò rỉ bộ nhớ trong Windows

Cũng giống như các cách khác nhau để ngăn chặn rò rỉ bộ nhớ, có nhiều cách khác nhau để ngăn chặn rò rỉ bộ nhớ.

1] Đóng các quy trình và khởi động lại.

Nếu bạn thấy một quá trình không cần thiết đang chiếm quá nhiều RAM, bạn có thể kết thúc quá trình trong Trình quản lý tác vụ. Bạn sẽ cần phải khởi động lại thiết bị để không gian giải phóng có sẵn để sử dụng bởi các quy trình khác. Không có sự cố rò rỉ bộ nhớ khởi động lại sẽ không được giải quyết. Một quá trình cụ thể có lỗi để làm chậm máy tính là Runtime Broker. Hãy thử nếu vô hiệu hóa một mình hoạt động.

2] Công cụ chẩn đoán bộ nhớ

Để truy cập vào Công cụ Chẩn đoán Bộ nhớ sẵn có cho Windows:
Để truy cập vào Công cụ Chẩn đoán Bộ nhớ sẵn có cho Windows:
  1. Lưu tất cả công việc quan trọng của bạn.
  2. nhấn Win + R để mở Chạy cửa sổ.
  3. Nhập lệnh mdsched.exe bên trong Chạy cửa sổ.
  4. Khởi động lại PC.
  5. Sau khi khởi động lại, hãy thực hiện quét cơ bản hoặc truy cập ‘ Nâng cao'Các tùy chọn như ‘ Kết hợp thử nghiệm' hoặc là ' Số lượng vượt qua ’.
  6. nhấn F10 để bắt đầu thử nghiệm.

Đây vẫn là các bản sửa lỗi tạm thời.

3] Kiểm tra cập nhật trình điều khiển

Trình điều khiển đã lỗi thời gây rò rỉ bộ nhớ. Giữ tất cả các trình điều khiển được cập nhật:
Trình điều khiển đã lỗi thời gây rò rỉ bộ nhớ. Giữ tất cả các trình điều khiển được cập nhật:
  1. nhấn Win + R và mở Chạy cửa sổ. Kiểu devmgmt.msc và nhấn Enter. Nó sẽ đưa bạn đến Quản lý thiết bị.
  2. Kiểm tra các trình điều khiển đã lỗi thời và cập nhật tất cả.
  3. Đối với các bản cập nhật bạn có thể đã bỏ lỡ, hãy kiểm tra trong Windows Update.

Điều này thật đơn giản.

4] Tối ưu hóa hiệu suất

Điều chỉnh Windows cho hiệu suất sẽ quản lý mọi thứ bao gồm lập lịch trình bộ xử lý và sử dụng bộ nhớ để ngăn chặn rò rỉ bộ nhớ. Làm theo các bước sau:
Điều chỉnh Windows cho hiệu suất sẽ quản lý mọi thứ bao gồm lập lịch trình bộ xử lý và sử dụng bộ nhớ để ngăn chặn rò rỉ bộ nhớ. Làm theo các bước sau:
  1. Nhấp chuột phải vào ‘ PC này ’Và chọn‘ Nâng cao'Cài đặt ở ngăn bên trái.
  2. Ở dưới cái ' Nâng cao ’Tab, chuyển đến‘ Hiệu suất', theo dõi bởi ' Cài đặt ’.
  3. Kiểm tra ' Điều chỉnh cho hiệu suất tốt nhất ’Và nhấp được.
  4. Khởi động lại và kiểm tra xem sự cố đã được giải quyết chưa.

Nếu giải pháp đơn giản này không hoạt động, hãy thử giải pháp tiếp theo.

5] Vô hiệu hóa chương trình đang chạy khi khởi động

Vô hiệu hóa các chương trình phiền hà là cách duy nhất để loại bỏ vấn đề rò rỉ bộ nhớ. Chuyển đến Trình quản lý Tác vụ và tắt chương trình gây rối. Nếu bạn không biết chương trình nào đang tạo ra sự cố, hãy thực hiện việc này:
Vô hiệu hóa các chương trình phiền hà là cách duy nhất để loại bỏ vấn đề rò rỉ bộ nhớ. Chuyển đến Trình quản lý Tác vụ và tắt chương trình gây rối. Nếu bạn không biết chương trình nào đang tạo ra sự cố, hãy thực hiện việc này:
  1. Đi đến ' Quản lý công việc ’.
  2. Đi đến ' Khởi động ’.
  3. Tắt các chương trình khởi động mà bạn không cần chạy theo mặc định.

6] Chống phân mảnh ổ cứng

Mặc dù Windows 10 thực hiện điều này cho bạn một cách tự động, đôi khi bạn có thể cần phải phân mảnh ổ đĩa cứng để tối ưu hóa hiệu suất:
Mặc dù Windows 10 thực hiện điều này cho bạn một cách tự động, đôi khi bạn có thể cần phải phân mảnh ổ đĩa cứng để tối ưu hóa hiệu suất:
  1. Đi đến ' PC này' hoặc là ' Máy tính của tôi ’.
  2. Nhấp chuột phải vào ổ cứng hệ thống (thường là ổ C:).
  3. Đi đến ' Công cụ' Dưới ' Tính chất ‘Và chọn‘ Tối ưu hóa ’.
  4. Chọn ổ đĩa để chống phân mảnh và chọn ‘ Phân tích ’.

Khởi động lại máy tính của bạn sau khi phân mảnh mới.

7] ClearPage File lúc tắt máy

Bây giờ nó đang trở nên phức tạp - nhưng đừng lo lắng. Dưới đây là cách xóa Tệp Trang lúc tắt mọi lúc:

  1. Kiểu regedit trên Tìm kiếm để khởi chạy Trình chỉnh sửa đăng ký.
  2. Nhập đường dẫn này: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
  3. Thay đổi giá trị của ClearPageFileAtShutDown thành ‘1’.
  4. Lưu các thay đổi và khởi động lại thiết bị.

Điều này nên làm điều đó.

9] Vô hiệu hoá Superfetch

Dịch vụ Windows này tối ưu hóa hiệu suất bằng cách giảm thiểu thời gian khởi động. Nó cho phép Windows quản lý việc sử dụng RAM. Cuộc sống sau khi vô hiệu hóa Superfetch không thuận tiện nhưng hãy làm điều đó nếu bạn phải. Ít nhất hãy thử điều này một mình để cô lập vấn đề:

  1. Tìm kiếm services.msc và truy cập Trình quản lý dịch vụ.
  2. Tìm kiếm ' Superfetch ’Và nhấp chuột phải vào nó để đi đến‘ Tính chất ’.
  3. Lựa chọn ' Dừng lại ’.
  4. Cũng thế ' Vô hiệu hóa'Dịch vụ từ trình đơn thả xuống.
  5. Khởi động lại PC và kiểm tra xem hiệu suất đã được cải thiện chưa.

Bật Superfetch nếu tính năng này không hoạt động.

10] Kiểm tra phần mềm độc hại

Sử dụng phần mềm chống vi-rút của bên thứ ba hoặc Windows Defender trong Windows 10 để quét và loại bỏ phần mềm độc hại. Đảm bảo rằng phần mềm chống vi-rút được cập nhật để hỗ trợ Hệ điều hành của bạn để nó không kết thúc trở thành lý do cho rò rỉ bộ nhớ.

Mọi giải pháp bạn có thể cần tìm hoặc ngăn chặn rò rỉ bộ nhớ đều ở ngay tại đây. Bạn có thể đọc thêm về rò rỉ bộ nhớ trên MSDN và Microsoft.

Bài viết liên quan:

  • Sửa lỗi Windows Stop hoặc Blue Screen of Death
  • Tại sao Windows hiển thị ít RAM hơn so với cài đặt?
  • Làm cho Windows 10 khởi động, chạy, tắt máy nhanh hơn
  • Giới hạn bộ nhớ vật lý trong tệp Dump Crash cho Windows 10/8/7
  • Nén bộ nhớ trong Windows 10

Đề xuất: