Lỗi ngốn bộ nhớ Memory Leak trên Windows 10 thoảng qua không thường xuyên xuất hiện, nhưng khi gặp, máy tính sẽ hoạt động không mượt mà như trước. Bộ nhớ tăng lên mà không rõ nguyên nhân, gây khó khăn trong việc sử dụng máy tính.
Như đã đề cập, lỗi ngốn bộ nhớ Memory Leak trên Windows 10 có thể do phần mềm ngốn RAM, đặc biệt là các ứng dụng trong Startup. Cũng có khả năng là do lỗi RAM, đòi hỏi kiểm tra cẩn thận. Tham khảo bài viết dưới đây để tìm hiểu cách khắc phục vấn đề một cách tối ưu nhất.
Rò rỉ bộ nhớ không phải là vấn đề của không gian trống, mà là kết quả của một chương trình sử dụng bộ nhớ RAM quá mức cần thiết. Lỗi rò rỉ bộ nhớ xuất hiện trên Windows 10/8/7 khi bộ nhớ RAM không sẵn sàng mặc dù không được sử dụng.
Lỗi rò rỉ bộ nhớ (memory leak) trên Windows 10
Trước khi giải quyết sự cố, hãy hiểu rằng rò rỉ bộ nhớ (Memory Leak) là vấn đề phần mềm, ví dụ như trong Java, JavaScript, C / C ++, Windows, ... . Không cần thiết phải thay thế RAM hoặc ổ cứng.
Ảnh hưởng của rò rỉ bộ nhớ (memory leak) đến hệ thống ra sao?
Mặc dù rò rỉ bộ nhớ (memory leak) là một vấn đề trên hệ thống, nhiều người dùng thường không hiểu rõ về cách lỗi này ảnh hưởng đến hệ thống:
1. Bộ nhớ không được giải phóng ngay cả khi không sử dụng, dẫn đến tình trạng kiệt bộ nhớ.
2. Kiệt bộ nhớ làm cho phần mềm hoạt động chậm hơn.
3. Giảm dung lượng bộ nhớ dẫn đến hiệu suất hệ thống kém và thời gian phản hồi tăng.
4. Memory Leak có thể gây ra tình trạng treo động nhiều ứng dụng khác nhau.
Để xác định Memory Leak, 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 địa điểm rò rỉ bộ nhớ (Memory Leak)
Để khắc phục vấn đề rò rỉ bộ nhớ, bước đầu quan trọng là xác định địa điểm rò rỉ. Quá trình xác định vị trí của rò rỉ bộ nhớ bao gồm các bước cơ bản sau:
Bước 1: Định vị vị trí xảy ra rò rỉ.
Bước 2: Tìm kiếm rò rỉ bộ nhớ trong mernel-mode: xác định nơi rò rỉ do một thành phần trên driver kernel-mode.
Bước 3: Tìm kiếm rò rỉ bộ nhớ trong User-mode: xác định nơi rò rỉ do driver user-mode hoặc driver ứng dụng gây ra.
Quản lý bộ nhớ
Có nhiều chế độ khác nhau để phân bổ RAM cho các ứng dụng. Nếu không gian trống không được giải phóng sau khi sử dụng, lỗi rò rỉ bộ nhớ có thể xảy ra. Một số mô hình phân bổ bộ nhớ thông thường bao gồm:
1. Hàm HealAlloc được sử dụng để cấp phát bộ nhớ trong heap. Tương đương với mallo trong thời gian chạy C / C++.
2. Hàm VirtualAlloc được sử dụng để cấp phát trực tiếp từ hệ điều hành.
3. API của Kernel32 được sử dụng để lưu trữ bộ nhớ kernel cho ứng dụng, ví dụ như CreateFile, CreateThread.
4. API User32 và API Gdi32.
Ngăn chặn rò rỉ bộ nhớ
Chăm sóc trước còn hơn chữa trị. Dưới đây là một số cách để ngăn chặn rò rỉ bộ nhớ.
Theo dõi việc sử dụng RAM của các chương trình và ứng dụng
Lưu ý theo dõi các ứng dụng, chương trình chiếm dung lượng RAM cao không bình thường trên Task Manager. Mở Task Manager bằng cách nhấn tổ hợp phím CTRL + SHIFT + ESC, sau đó thêm các cột như Handles, User Objects, GDI Objects, ... .
Điều này giúp bạn dễ dàng theo dõi các chương trình, ứng dụng sử dụng tài nguyên hệ thống.
Công cụ chẩn đoán rò rỉ bộ nhớ của Microsoft
Các công cụ chẩn đoán đa dạng cho các chế độ phân bổ khác nhau:
1. Application Verifier chẩn đoán rò rỉ trong heap.
2. UMDH (một phần của Windows Debugging Tools) phân tích rò rỉ từng process bằng cách theo dõi phân bổ bộ nhớ heap.
3. Trace Capture kiểm tra kỹ lưỡng việc sử dụng RAM.
4. Xperf theo dõi các mẫu phân bổ heap.
5. CRT Debug Heap không chỉ theo dõi phân bổ heap mà còn hỗ trợ mã hóa để giảm thiểu rò rỉ.
6. JavaScript Memory Leak Detector giải quyết lỗi rò rỉ bộ nhớ bằng cách gỡ lỗi mã nguồn.
Mẹo
1. Sử dụng kernel HANDLE và các smart pointer để quản lý phân bổ tài nguyên Win32 và phân bổ heap.
2. Sử dụng các lớp quản lý tài nguyên tự động từ thư viện ATL để phân bổ kernel. Chuẩn C++ có auto_ptr để thực hiện phân bổ heap.
3. Đóng gói các con trỏ giao diện COM trong 'smart pointers' sử dụng _com_ptr_t hoặc _bstr_t hoặc _variant_t.
4.
5. Tránh thoát các hàm mà có thể gây phân bổ tài nguyên được giải phóng trong các biến trong hầu hết các khối khi kết thúc một hàm.
6. Hạn chế sử dụng ngôn ngữ ngoại lệ sau khi giải phóng tất cả các phân bổ trong khối _finally. Sử dụng smart pointer để quản lý heap và tránh sử dụng ngôn ngữ C++ ngoại lệ.
7. Luôn luôn gọi hàm PropVariantClear trước khi khởi động lại hoặc loại bỏ một đối tượng PROPVARIANT.
Hướng dẫn sửa lỗi ngốn bộ nhớ Memory Leak trên Windows 10
Cách 1: Đóng tất cả các process và khởi động lại
Nếu phát hiện có process không cần thiết đang chiếm dụng quá nhiều RAM, đơn giản kết thúc process đó trong Task Manager và khởi động lại thiết bị để giải phóng không gian trống cho các process khác.
Nếu vấn đề rò rỉ bộ nhớ vẫn tồn tại sau khi khởi động lại máy tính, thử vô hiệu hóa process có tên Runtime Broker, một process được biết đến làm máy tính chậm.
Cách 2: Sử dụng công cụ Memory Diagnostic Tool
Để truy cập công cụ Memory Diagnostic Tool tích hợp sẵn trên hệ điều hành Windows:
Bước 1: Đảm bảo lưu tất cả các công việc và file mà bạn đang làm.
Bước 2: Nhấn tổ hợp phím Windows + R để mở cửa sổ Run.
Bước 3: Gõ lệnh mdsched.exe trong cửa sổ Run.
Bước 4: Khởi động lại máy tính.
Bước 5: Sau khi khởi động lại máy tính, thực hiện quét cơ bản hoặc truy cập các tùy chọn quét nâng cao như Test mix hoặc Pass count.
Bước 6: Nhấn phím F10 để bắt đầu kiểm tra.
Đây chỉ là biện pháp tạm thời.
Cách 3: Tối ưu hóa hiệu suất
Điều chỉnh hiệu suất Windows để quản lý mọi thứ bao gồm các process 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 dưới đây:
Bước 1: Chuột phải vào biểu tượng This PC, chọn Advanced ở menu bên trái.
Bước 2: Tại tab Advanced, vào mục Performance, sau đó chọn Settings.
Bước 3: Tích chọn Adjust for best performance rồi click OK.
Bước 4: Khởi động lại máy tính và kiểm tra xem lỗi còn không.
Nếu phương pháp này không giải quyết được vấn đề, thử áp dụng những cách sau đây.
Cách 4: Tắt các chương trình khởi động cùng hệ thống
Đóng các chương trình khởi động cùng hệ thống là giải pháp duy nhất để khắc phục tình trạng rò rỉ bộ nhớ. Mở Task Manager và tắt các chương trình gây ra sự cố. Nếu không biết chương trình nào là thủ phạm, thực hiện theo các bước dưới đây:
Bước 1: Mở Task Manager Quản lý công việc.
Bước 2: Trên cửa sổ Task Manager, chuyển đến tab Startup.
Bước 3: Tắt các chương trình khởi động cùng hệ thống không cần thiết.
Cách 5: Ngăn chặn sự phân mảnh ổ cứng
Mặc dù Windows 10 tự động chống phân mảnh ổ cứng, nhưng đôi khi bạn cần thực hiện chống phân mảnh để tối ưu hóa hiệu suất hệ thống:
Bước 1: Mở This PC hoặc My Computer.
Bước 2: Click phải vào ổ cứng hệ thống (thường là ổ C:).
Bước 3: Trong cửa sổ tiếp theo, vào Tools trong mục Properties, và chọn Optimize.
Bước 4: Chọn ổ cần chống phân mảnh và nhấn Analyze.
Bước 5: Khởi động lại máy tính sau khi chống phân mảnh.
Cách 6: Xóa Page File sau khi tắt máy
Thực hiện các bước sau để xóa Page File mỗi khi tắt máy:
Bước 1: Mở Registry Editor bằng cách nhập regedit trong ô tìm kiếm.
Bước 2: Dùng key sau để điều hướng trong Registry Editor:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
Bước 3: Đặt giá trị của ClearPageFileAtShutDown là 1.
Bước 4: Lưu lại các thay đổi và khởi động lại máy tính của bạn.
Cách 7: Tắt Superfetch
Dịch vụ Windows này tối ưu hóa hiệu suất hệ thống bằng cách giảm thời gian khởi động. Superfetch cho phép Windows quản lý việc sử dụng RAM. Cần lưu ý một điều là sau khi vô hiệu hóa Superfetch hiệu suất hệ thống có thể bị giảm. Tuy nhiên để sửa lỗi rò rỉ bộ nhớ, bạn có thể áp dụng cách tắt Superfetch như sau:
Bước 1: Gõ services.msc trong hộp tìm kiếm để mở Services Manager.
Bước 2: Trên cửa sổ Services Manager, bấm phải chuột vào Superfetch, chọn Properties.
Bước 3: Chọn Stop.
Bước 4: Hoặc bạn cũng có thể chọn Disable để vô hiệu hóa dịch vụ từ menu.
Bước 5: Khởi động lại máy tính và kiểm tra xem hiệu suất hệ thống đã được cải thiện hay chưa.
Bước 6: Nếu vấn đề vẫn tồn tại, hãy kích hoạt lại Enable Superfetch.
Cách 8: Kiểm tra các phần mềm độc hại
Sử dụng phần mềm diệt virus của bên thứ 3 hoặc Windows Defender trên Windows 10 để quét và loại bỏ các phần mềm độc hại (malware) trên máy tính của bạn. Đảm bảo rằng chương trình diệt virus được cập nhật để tương thích với hệ điều hành của bạn, để tránh trường hợp nó là nguyên nhân gây ra lỗi rò rỉ bộ nhớ.
Cách 9. Tắt các chương trình khởi động cùng máy.
Đóng các chương trình khởi chạy cùng máy giúp kiểm tra xem máy có còn gặp lỗi ngốn bộ nhớ Memory Leak không. Cách thực hiện khá đơn giản và bạn chỉ cần làm như sau.
Bước 1: Click chuột phải vào thanh Taskbar và chọn Task Manager từ giao diện Menu. Bạn cũng có thể sử dụng tổ hợp phím Ctrl + Alt + Del để mở nhanh thao tác này.
Bước 2: Ngay sau đó bảng Task Manager hiện ra, bạn vào tiếp mục Startup , nơi các phần mềm chạy cùng với Windows. Ở đây có 2 cột trạng thái là Status và Starup impact .
Hãy tắt bỏ tất cả các ứng dụng có trạng thái là Enabled và thỏa mãn Startup impact ở chế độ High . Đây hầu hết là các phần mềm trên máy tính bạn được phép chạy ngầm, một số trong chúng là các ứng dụng cập nhật hay chạy một tiến trình nào đó nên bạn cần cân nhắc trước khi tắt.
Bước 3: Để vô hiệu hóa một phần mềm đang chạy, chỉ cần nhấp chuột phải và chọn Disable, từ đó phần mềm sẽ không còn được phép chạy tự động cùng hệ thống.
Cách 10. Thực hiện nâng cấp Driver
Một trong những nguyên nhân có thể gây ra tình trạng lỗi ngốn bộ nhớ Memory Leak trên Windows 10 là do phiên bản driver hiện tại chưa được tối ưu hoặc xảy ra lỗi tương thích với hệ thống. Để kiểm tra và cập nhật từng driver một cách đơn giản, bạn có thể sử dụng phần mềm tự động như Driver Booster, với hơn 400.000 driver từ kho dữ liệu của mình. Tải ngay Driver Booster tại đây.
Cách 11. Kiểm tra RAM
Có thể RAM của bạn đang phải đối mặt với vấn đề, gây lỗi quản lý RAM không chính xác hoặc không ổn định trên Windows 10. Việc kiểm tra RAM sẽ giúp xác định và áp dụng các biện pháp xử lý phù hợp với tình trạng, đặc biệt khi bạn gặp lỗi ngốn bộ nhớ Memory Leak trên Windows 10.
Bước 1: Mở Menu Start và gõ 'memory ' để truy cập Windows Memory Diagnostic.
Bước 2: Sau đó, bạn sẽ nhận được thông báo yêu cầu khởi động lại máy. Chọn phương án đầu tiên để khởi động lại ngay lập tức hoặc phương án thứ 2 để lên lịch khởi động lại sau tùy chọn của bạn.
Bước 3: Sau khi khởi động lại, máy tính sẽ vào chế độ Windows Memory Diagnostic, bạn có thể nhấn F1 để chọn trong 3 chế độ khác nhau.
Bước 4: Có 3 chế độ là Basic, Standard và Extended với mức độ quét chi tiết cao, nếu có thời gian, hãy chọn Extended để kiểm tra kỹ nhất.
Sau đó, quay lại Windows để xem có lỗi gì khi kiểm tra RAM. Từ đó, bạn sẽ biết xem nguyên nhân có phải do RAM gây ra lỗi ngốn bộ nhớ Memory Leak trên Windows 10 hay không, và từ đó áp dụng biện pháp sửa chữa, thay thế RAM. Nếu cảm thấy lượng RAM hiện tại không đủ, hãy cân nhắc nâng cấp RAM. Lưu ý rằng không phải loại RAM nào cũng phù hợp với mọi thiết bị.
Đây là hướng dẫn giúp khắc phục lỗi ngốn bộ nhớ Memory Leak trên Windows 10, mang lại hiệu suất máy tính như lúc mới và loại bỏ tình trạng giật lag. Nếu gặp thông báo lỗi Your computer is low on memory, bạn có thể tham khảo cách sửa lỗi Your computer is low on memory tại đây.
Mặc dù Windows 10 đã ra mắt khá lâu, nhưng vẫn cần chú ý sử dụng để tránh gặp các lỗi cơ bản như trường hợp này. Hạn chế lạm dụng các phần mềm tăng tốc máy tính, vì chúng không nhất thiết mang lại hiệu quả và có thể làm chậm máy tính thêm nếu sử dụng không đúng cách.