Văn phòng

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

Windows 10 per Windows 7-Key aktivieren - Selbstversuch auf mehreren PCs und bei Hardwaretausch

Windows 10 per Windows 7-Key aktivieren - Selbstversuch auf mehreren PCs und bei Hardwaretausch

Mục lục:

Anonim

Rò rỉ bộ nhớlà sự sai lệch tài nguyên trong chương trình máy tính do cấp phát 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ắ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ụ như trong Java, JavaScript, C / C ++, Windows, vv. Thay thế RAM hoặc đĩa cứng không cần thiết.

Tại sao nó kém

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

  1. Vì bộ nhớ không được giải phóng ngay cả khi không sử dụng, nó dẫn đến sự cạn kiệt bộ nhớ.
  2. Làm cạn kiệt kết quả bộ nhớ trong quá trình lão hóa phần mềm. dẫn đến tăng thời gian đáp ứng và hiệu suất kém của hệ thống.
  3. rò rỉ bộ nhớ không được kiểm soát cuối cùng có thể dẫn đến sự cố của ứng dụng.
  4. Để xác định rò rỉ bộ nhớ, lập trình viên cần có quyền truy cập vào mã nguồn của

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

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

Khẳng định

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

Có các chế độ khác nhau trong đó ứ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à:

Chức năng HealAlloc để phân bổ bộ nhớ heap. Tương đương thời gian chạy C / C ++ là malloc và mới.

  1. Chức năng VirtualAlloc để phân bổ trực tiếp từ hệ điều hành.
  2. Kernel32 API để giữ bộ nhớ hạt nhân cho ứng dụng. Ví dụ, CreateFile, CreateThread,
  3. User32 APIs và Gdi32 APIs.
  4. 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ớ. > Bạn cần chú ý đến việc sử dụng RAM bất thường bằng 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, vv

Điều này sẽ giúp bạn dễ dàng theo dõi việc sử dụng tài nguyên. Các công cụ của Microsoft để 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: Trình kiểm tra ứng dụng chẩn đoán rò rỉ heap.

UMDH (một thành phần của Windows Debugging Tools) chẩn đoán rò rỉ cho các quá trình riêng lẻ bằng cách theo dõi phân bổ bộ nhớ heap

Dấu vết Capture để phân tích kỹ lưỡng việc sử dụng RAM.

Xperf cũng theo dõi các mẫu phân bổ heap.

  1. 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ỉ.
  2. Phát hiện lỗi rò rỉ bộ nhớ trong mã số.
  3. Mẹo sử dụng
  4. Sử dụng hạt nhân
  5. HANDLE
  6. và các con trỏ thông minh khác cho tài nguyên Win32 và phân bổ đống.

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ó

  1. auto_ptr để phân bổ đống. Đó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
  2. _com_ptr_t hoặc _bstr_t
  3. hoặc _variant_t . Theo dõi mã.NET để sử dụng bộ nhớ bất thường Tránh nhiều đường dẫn thoát cho các chức năng để 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. Chỉ sử dụng các 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 ++. Luôn gọi hàm
  4. PropVariantClear
  5. trước khi khởi động lại hoặc loại bỏ một đối tượng PROPVARIANT.
  6. Gỡ rối rò rỉ bộ nhớ trong Windows
  7. 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 tiến trình và khởi động lại. Nếu bạn thấy quá trình không cần thiết 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. Nếu không có vấn đề 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.

2] Công cụ Chẩn đoán Bộ nhớ

Để truy cập Công cụ Chẩn đoán Bộ nhớ sẵn có cho Windows:

Lưu tất cả công việc quan trọng của bạn.

Nhấn

Win + R

để mở cửa sổ

  1. Chạy
  2. Nhập lệnh mdsched.exe trong cửa sổ Chạy
  3. . Khởi động lại PC. Sau khởi động lại, thực hiện quét cơ bản hoặc thực hiện các tùy chọn ` Nâng cao ` như `
  4. Kết quả thử nghiệm
  5. ` hoặc ` Số đếm `. Nhấn F10 để bắt đầu kiểm tra. Đây vẫn là bản sửa lỗi tạm thời
  6. 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ớ. Cập nhật tất cả các trình điều khiển: Nhấn

Win + R

và mở cửa sổ

Chạy

  1. . Nhập devmgmt.msc và nhấn Enter. Nó sẽ đưa bạn đến Trình quản lý thiết bị . Kiểm tra các trình điều khiển đã lỗi thời và cập nhật tất cả. Để 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
  2. Điều chỉnh Windows cho hiệu năng 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ớ. Thực hiện theo các bước sau:
  3. Nhấp chuột phải vào các cài đặt `

Máy tính này

` và chọn `

Nâng cao

  1. ` ở ô cửa trái. Dưới ` Nâng cao `tab, đi đến` Hiệu suất
  2. `, theo sau là` Cài đặt `. Kiểm tra` Điều chỉnh cho hiệu suất tốt nhất `và nhấp OK
  3. . 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] Tắt 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:
  4. Đi tới `

Trình quản lý tác vụ

`.

Đi tới `

  1. Khởi động `. Vô hiệu hóa các chương trình khởi động mà bạn không cần chạy theo mặc định.
  2. 6] Defrag Hard Drive Mặc dù Windows 10 tự động thực hiện việc này, đôi khi bạn có thể cần phải phân mảnh ổ cứng để tối ưu hóa hiệu năng: Đi tới `
  3. Máy tính này

` hoặc `

Máy tính của tôi

  1. `. Nhấp chuột phải vào ổ đĩa cứng của hệ thống (thường là ổ C:). Đi tới ` Công cụ `trong`
  2. Thuộc tính
  3. `và chọn` Tối ưu hóa `. Chọn ổ đĩa để 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
  4. 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 ở mọi lần tắt: Nhập regedit

trên Tìm kiếm để khởi chạy Trình chỉnh sửa đăng ký.

Nhập đường dẫn sau:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management

  1. Thay đổi giá trị của ClearPageFileAtShutDown thành `1`. Lưu thay đổi và khởi động lại thiết bị.
  2. Điều này nên thực hiện. 9] Tắt Superfetch
  3. Dịch vụ Windows này tối ưu hóa hiệu năng 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 đề: Tìm kiếm
  4. services.msc

và đi tới Trình quản lý Dịch vụ.

Tìm kiếm `

Superfetch

  1. ` và nhấp chuột phải vào nó để đi tới ` Thuộc tính `.
  2. Chọn ` Dừng `. Đồng thời ` Tắt
  3. ` dịch vụ từ menu thả xuống. 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 cái này không hoạt động.
  4. 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. Hãy chắc chắn rằng phần mềm chống virus được cập nhật để hỗ trợ hệ điều hành của bạn để nó không trở thành lý do cho sự 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 đây. Bạn có thể đọc thêm về rò rỉ bộ nhớ trên MSDN và Microsoft.