Lỗi rò rỉ không phải do máy tính của bạn
Nếu bạn đang tự hỏi liệu có phải do máy của mình — một driver cũ, những điều kỳ lạ của Windows 11, một tab Chrome chạy quá mức — thì không phải vậy. Lỗi rò rỉ nằm bên trong Monosnap và đã tồn tại trong nhiều năm. Tìm kiếm r/monosnap và bạn sẽ tìm thấy hết chủ đề này đến chủ đề khác mô tả cùng một vấn đề.
Đây là những gì xảy ra bên trong. Mỗi khi Monosnap chụp một vùng, nó sẽ cấp phát một bộ đệm khung (frame buffer) đủ lớn để chứa dữ liệu pixel thô. Đối với màn hình 2560 x 1440, đó là khoảng 14 MB. Khi trình chỉnh sửa đóng lại, các bộ đệm đó lẽ ra phải được trả về cho hệ điều hành. Trong Monosnap, chúng thường không được trả về — chúng bị giữ lại bởi heap của trình kết xuất Electron, chờ đợi một lượt thu gom rác (garbage-collection) mà hoặc không bao giờ chạy hoặc chạy quá muộn. Trong một ngày làm việc với hơn 40 lần chụp, các bộ đệm bị giữ lại tích tụ thành hàng trăm megabyte RAM ảo.
Giải pháp là một ứng dụng khác
Kiến trúc của Monosnap gắn liền lỗi rò rỉ với chính Electron, và việc vá lỗi sẽ yêu cầu viết lại toàn bộ quy trình chụp. Việc viết lại đó đã không xảy ra trong năm năm. Giải pháp thực tế là một công cụ được thiết kế mà không gặp phải vấn đề này ngay từ đầu.
Maxisnap được xây dựng trên PyQt6 và được biên dịch bằng PyInstaller thành một tệp thực thi Win32 duy nhất. Không có tiến trình Chromium. Mỗi lần chụp sẽ cấp phát một QImage, trình chỉnh sửa tham chiếu đến nó, và khi cửa sổ đóng lại, tham chiếu sẽ bị loại bỏ và bộ nhớ ngay lập tức được trả về cho hệ điều hành — bởi vì mô hình sở hữu của PyQt và cơ chế đếm tham chiếu của Python đều giải phóng bộ nhớ ngay lập tức thay vì chờ đợi một GC thế hệ.
Theo thực nghiệm: Maxisnap ở trạng thái chờ khi khởi chạy là khoảng 50 MB. Sau 72 giờ chạy liên tục với các lần chụp thường xuyên, nó vẫn ở khoảng 50 MB. Biểu đồ trên được lấy từ nhật ký thực tế.
Quy trình chuyển đổi
- 0:00Tải Maxisnap. Truy cập trang tải xuống. Một cú nhấp chuột, 63 MB.
- 0:15Thoát Monosnap. Nhấp chuột phải vào biểu tượng trên khay hệ thống, chọn Thoát. Xem RAM của bạn giảm 600 MB.
- 0:30Chạy trình cài đặt. Đường dẫn cài đặt mặc định, không yêu cầu khởi động lại.
- 0:45Nhấn Ctrl+Alt+5. Lần chụp đầu tiên của bạn với cùng phím tắt mà bạn vẫn luôn sử dụng. Trình chỉnh sửa mở ngay lập tức.
- 0:60Hoàn tất. Dán thông tin đăng nhập SFTP/S3 của bạn vào Cài đặt nếu bạn muốn tải lên máy chủ.
Các câu hỏi về rò rỉ bộ nhớ
Tôi chỉ chụp 5 ảnh màn hình mỗi ngày. Lỗi rò rỉ có vẫn ảnh hưởng đến tôi không?
Ít nghiêm trọng hơn, nhưng có. Bộ nhớ ở trạng thái chờ vẫn tăng vì Monosnap liên tục kiểm tra clipboard và khay hệ thống ngay cả khi bạn không chụp. Mức tăng chậm hơn khi sử dụng ít nhưng không bao giờ dừng lại.
Khởi động lại ứng dụng có giúp ích không?
Tạm thời. Thoát và khởi chạy lại và bạn sẽ trở lại khoảng ~180 MB. Nhưng hầu hết người dùng nhận thấy lỗi rò rỉ là do họ giữ công cụ chụp màn hình chạy cả ngày, và việc khởi động lại nhiều lần là điều ngược lại với những gì họ muốn.
Còn Monosnap trên macOS thì sao?
Lỗi rò rỉ ít nghiêm trọng hơn trên macOS vì mô hình bộ nhớ khác biệt, nhưng người dùng vẫn báo cáo sự tăng trưởng dần dần. Phiên bản Maxisnap dành cho macOS đang trong giai đoạn thử nghiệm. Đối với Windows, hãy chuyển đổi ngay hôm nay.
RAM của bạn sẽ cảm ơn bạn
Maxisnap miễn phí. Cài đặt chỉ mất 60 giây. Sử dụng cùng phím tắt mà bạn đã quen.
Tải xuống MaxisnapLiên quan: tại sao nó trở nên chậm · khắc phục tình trạng đóng băng · giải pháp thay thế chung