2025-08-12 · 8 phút đọc

Tại Sao Monosnap Làm Đơ Máy Tính Của Bạn và Cách Khắc Phục

Bạn đang trong một phiên làm việc — IDE đang mở, trình duyệt với hai mươi tab, Slack đang chạy, có thể Docker ở chế độ nền. Máy tính của bạn bắt đầu chậm lại. Chuột bị giật. Các ứng dụng mất năm giây để phản hồi. Bạn mở Task Manager và thấy: Monosnap đang sử dụng 800 MB, 1.2 GB, đôi khi hơn 2 GB RAM.

Đây không phải là một lỗi bạn đã báo cáo và mong đợi được sửa. Đây là một vấn đề hệ thống bắt nguồn từ kiến trúc của Monosnap. Nó đã được người dùng báo cáo trong nhiều năm và vẫn chưa được giải quyết vì nguyên nhân cơ bản nằm ở cách Monosnap được xây dựng.

Bài viết này giải thích tại sao nó xảy ra, cách chẩn đoán, các giải pháp tạm thời và — khi bạn đã đủ kiên nhẫn — giải pháp vĩnh viễn.

Nguyên nhân gốc rễ: Electron và rò rỉ bộ nhớ

Monosnap được xây dựng trên Electron, một framework chạy các ứng dụng web dưới dạng ứng dụng máy tính để bàn bằng cách đóng gói Chromium (công cụ đằng sau Chrome) và Node.js. Mỗi ứng dụng Electron về cơ bản đang chạy một trình duyệt web ở chế độ nền, đó là lý do tại sao các ứng dụng Electron có xu hướng tiêu thụ nhiều tài nguyên hơn các ứng dụng gốc.

Bản thân Electron không tự gây ra rò rỉ bộ nhớ — các ứng dụng Electron được xây dựng tốt sẽ quản lý bộ nhớ hiệu quả. Nhưng Electron khiến rò rỉ bộ nhớ dễ xảy ra hơn và khó phát hiện hơn. Sự kết hợp giữa cơ chế thu gom rác của JavaScript, pipeline kết xuất của Chromium và vòng lặp sự kiện của Node.js tạo ra nhiều bề mặt nơi bộ nhớ có thể bị rò rỉ.

Trong trường hợp của Monosnap, một số mẫu rò rỉ được báo cáo xuất hiện từ các báo cáo của người dùng và phân tích hệ thống:

Tích lũy bộ đệm hình ảnh

Mỗi ảnh chụp màn hình mà Monosnap chụp đều tồn tại dưới dạng bộ đệm hình ảnh trong bộ nhớ. Trong một công cụ được triển khai tốt, các bộ đệm này sẽ được giải phóng sau khi hình ảnh được lưu hoặc tải lên. Trong Monosnap, các báo cáo của người dùng cho thấy các bộ đệm hình ảnh từ các lần chụp trước không được giải phóng hoàn toàn, khiến bộ nhớ tăng lên theo mỗi ảnh chụp màn hình được chụp. Chụp 50 ảnh chụp màn hình trong một phiên, và bạn sẽ có 50 bộ đệm hình ảnh được giữ lại một phần đang tiêu thụ RAM.

Phình to tiến trình kết xuất

Các ứng dụng Electron sử dụng các tiến trình trình kết xuất (về cơ bản là các tab Chrome) cho giao diện người dùng của chúng. Các cửa sổ trình chỉnh sửa, xem trước và cài đặt của Monosnap đều chạy dưới dạng các tiến trình trình kết xuất. Nếu các tiến trình này không được dọn dẹp đúng cách khi các cửa sổ đóng lại, việc cấp phát bộ nhớ của chúng sẽ vẫn tồn tại. Trong một phiên làm việc dài với nhiều lần mở và đóng trình chỉnh sửa, điều này sẽ tích tụ lại.

Rò rỉ Trình lắng nghe Sự kiện

Các trình lắng nghe sự kiện JavaScript được đăng ký nhưng không bao giờ hủy đăng ký là một nguồn rò rỉ bộ nhớ kinh điển trong các ứng dụng Electron. Mỗi trình lắng nghe giữ một tham chiếu ngăn bộ thu gom rác giải phóng bộ nhớ liên quan. Trong một công cụ liên tục lắng nghe các hotkeys toàn cục, thay đổi clipboard và các sự kiện hiển thị, ngay cả những rò rỉ trình lắng nghe nhỏ cũng sẽ tích tụ theo thời gian.

Cách chẩn đoán vấn đề

Nếu bạn nghi ngờ Monosnap đang làm chậm hệ thống của mình, đây là cách để xác nhận:

Kiểm tra Trình quản lý Tác vụ

  1. Nhấn Ctrl+Shift+Esc để mở Trình quản lý Tác vụ
  2. Nhấp vào "More details" nếu bạn thấy chế độ xem đơn giản
  3. Nhấp vào tiêu đề cột "Memory" để sắp xếp theo mức sử dụng RAM
  4. Tìm các mục "Monosnap" — có thể có nhiều mục (một cho mỗi tiến trình Electron)
  5. Ghi lại tổng bộ nhớ trên tất cả các tiến trình Monosnap

Bộ nhớ nhàn rỗi thông thường cho một công cụ chụp màn hình là 30-60 MB. Nếu tổng bộ nhớ của Monosnap vượt quá 300 MB, bạn đang gặp phải tình trạng rò rỉ. Trên 500 MB là nghiêm trọng. Trên 1 GB và nó đang tích cực làm suy giảm hiệu suất hệ thống của bạn.

Phân tích chuyên sâu Trình giám sát Tài nguyên

Để biết thêm chi tiết, hãy mở Trình giám sát Tài nguyên (resmon từ hộp thoại Run):

  1. Chuyển đến tab Memory
  2. Tìm các tiến trình Monosnap
  3. Kiểm tra "Working Set" (RAM vật lý thực tế được sử dụng) và "Private" (bộ nhớ dành riêng cho Monosnap)
  4. Theo dõi các giá trị này trong 30 phút sử dụng bình thường — nếu chúng có xu hướng tăng lên mà bạn không chụp ảnh màn hình, rò rỉ đã được xác nhận

Các biện pháp khắc phục tạm thời

Những giải pháp tạm thời này chỉ quản lý các triệu chứng. Chúng không khắc phục được rò rỉ tiềm ẩn.

Khởi động lại Monosnap thường xuyên

Giải pháp tạm thời đơn giản nhất. Nhấp chuột phải vào biểu tượng Monosnap trên khay hệ thống, thoát và khởi chạy lại. Thao tác này sẽ xóa tất cả bộ nhớ tích lũy. Một số người dùng thiết lập tác vụ trong Windows Task Scheduler để khởi động lại Monosnap sau mỗi vài giờ.

Tắt đồng bộ hóa đám mây

Các tính năng đồng bộ hóa đám mây của Monosnap giữ thêm các kết nối và dữ liệu trong bộ nhớ. Nếu bạn không sử dụng lưu trữ đám mây, hãy tắt nó trong Cài đặt. Điều này sẽ không loại bỏ rò rỉ nhưng có thể giảm tốc độ tăng trưởng bộ nhớ.

Giảm hoạt động nền

Tắt các tính năng bạn không sử dụng: giám sát clipboard, tự động chụp, plugin tích hợp. Mỗi tính năng hoạt động đều thêm các trình lắng nghe sự kiện và các tiến trình nền có thể gây rò rỉ.

Đặt giới hạn bộ nhớ với Windows

Bạn có thể tạo một tập lệnh giám sát mức sử dụng bộ nhớ của Monosnap và tự động khởi động lại nó khi vượt quá ngưỡng:

# PowerShell script — save as restart-monosnap.ps1
$threshold = 500MB
$process = Get-Process -Name "Monosnap" -ErrorAction SilentlyContinue
if ($process -and ($process.WorkingSet64 -gt $threshold)) {
    Stop-Process -Name "Monosnap" -Force
    Start-Sleep -Seconds 2
    Start-Process "C:\Program Files\Monosnap\Monosnap.exe"
}

Lên lịch để chạy tác vụ này mỗi giờ qua Task Scheduler. Đây là một giải pháp tạm thời, nhưng hiệu quả.

Giải pháp lâu dài: Chuyển sang công cụ gốc (Native Tool)

Giải pháp lâu dài cho các lỗi rò rỉ bộ nhớ dựa trên Electron là ngừng sử dụng công cụ dựa trên Electron. Các ứng dụng chụp màn hình gốc (native) — được xây dựng trực tiếp trên các API của hệ điều hành mà không cần môi trường chạy trình duyệt web — không gặp phải vấn đề rò rỉ bộ nhớ tương tự.

Maxisnap được xây dựng nguyên bản cho Windows. Nó không sử dụng Electron, Chromium, hay Node.js. Nó sử dụng trực tiếp Windows API để chụp màn hình, GDI+ để xử lý hình ảnh và các framework UI nhẹ cho trình chỉnh sửa chú thích. Kết quả:

  • ~35 MB RAM khi không hoạt động — và nó duy trì ở mức ~35 MB. Không tăng trưởng theo thời gian. Không rò rỉ.
  • Dưới 70 MB khi cài đặt — so với Monosnap hơn 200+ MB (phần lớn là Chromium được đóng gói kèm)
  • Không có tiến trình Electron nào — một tiến trình trong Task Manager, sử dụng tài nguyên có thể dự đoán được
  • Không cần khởi động lại — chạy trong nhiều tuần mà không tăng bộ nhớ

Bộ tính năng bao gồm mọi thứ mà hầu hết người dùng Monosnap cần: chụp vùng, chụp toàn màn hình, 11 công cụ chú thích (bao gồm làm mờ dữ liệu nhạy cảm), và tải lên qua SFTP, FTP, S3, hoặc HTTP. Xem so sánh đầy đủ.

Di chuyển từ Monosnap sang Maxisnap

Quá trình chuyển đổi mất khoảng năm phút:

  1. Tải xuống Maxisnap — Dưới 70 MB, cài đặt trong khoảng một phút
  2. Tìm hiểu phím tắtCtrl+Alt+5 (vùng chọn), Ctrl+Alt+6 (toàn màn hình), Ctrl+Alt+7 (tự động tải lên). Hướng dẫn phím tắt đầy đủ tại đây.
  3. Cấu hình tải lên (tùy chọn) — Nếu bạn đã sử dụng đám mây của Monosnap, hãy thiết lập Tải lên SFTP đến máy chủ của riêng bạn để có quy trình làm việc chụp-tạo-liên-kết tương tự mà không phụ thuộc vào đám mây của Monosnap.
  4. Tắt khởi động Monosnap — Cài đặt > Chung > bỏ chọn "Chạy khi khởi động"
  5. Bật khởi động Maxisnap — Cài đặt > chọn "Khởi động cùng Windows"

Các ảnh chụp màn hình của bạn từ đám mây của Monosnap vẫn có thể truy cập được qua giao diện web của Monosnap ngay cả sau khi gỡ cài đặt ứng dụng máy tính để bàn. Các ảnh chụp màn hình mới sẽ được xử lý qua Maxisnap.

Tại sao vấn đề này sẽ không được khắc phục

Các lỗi rò rỉ bộ nhớ Electron nổi tiếng là khó khắc phục vì chúng phân tán trên các lớp của framework. Một lỗi rò rỉ trong tiến trình renderer yêu cầu gỡ lỗi khác với lỗi rò rỉ trong tiến trình chính hoặc lớp Node.js. Việc tìm và khắc phục mọi lỗi rò rỉ trong một ứng dụng Electron phức tạp về cơ bản là một dự án liên tục — chứ không phải là một lần sửa chữa duy nhất.

Đội ngũ của Monosnap sẽ cần phải đầu tư đáng kể công sức kỹ thuật vào việc phân tích bộ nhớ và khắc phục rò rỉ, hoặc viết lại ứng dụng mà không dùng Electron. Cả hai lựa chọn này dường như không nằm trong lộ trình của họ, vì vấn đề đã tồn tại qua nhiều phiên bản chính.

Đối với người dùng, điều này có nghĩa là vấn đề sẽ không biến mất. Bạn có thể quản lý nó bằng cách khởi động lại và các giải pháp tạm thời, hoặc bạn có thể loại bỏ nó bằng cách chuyển sang một công cụ không có gánh nặng của Electron.

Lời Kết

Một công cụ chụp ảnh màn hình nên hoạt động một cách vô hình. Nó nên nằm trong khay hệ thống của bạn, tiêu thụ tài nguyên không đáng kể và chụp màn hình của bạn khi bạn nhấn một phím tắt. Nó không nên là lý do khiến máy tính của bạn bị treo trong một buổi thuyết trình.

Nếu việc sử dụng bộ nhớ của Monosnap đang ảnh hưởng đến công việc của bạn, các cách khắc phục tạm thời ở trên sẽ hữu ích. Nhưng giải pháp lâu dài là điều hiển nhiên: sử dụng một công cụ được xây dựng cho công việc mà không có gánh nặng của một trình duyệt web chạy ngầm.

Tải xuống Maxisnap và so sánh Trình quản lý Tác vụ của bạn trước và sau. Sự khác biệt là ngay lập tức. Miễn phí cho mục đích sử dụng cá nhân — không tốn phí để dùng thử.

Sẵn sàng thử một công cụ chụp ảnh màn hình tốt hơn?

Tải Maxisnap miễn phí và cảm nhận sự khác biệt.

Tải Maxisnap Miễn phí