ClamAV giữ các chuỗi tìm kiếm bằng cách sử dụng các thuật toán chuỗi cổ điển (Boyer Moore) và biểu thức chính quy (Aho Corasick). Là thuật toán từ những năm 1970, chúng rất hiệu quả về bộ nhớ.
Vấn đề là số lượng lớn chữ ký virus. Điều này dẫn đến các cơ sở dữ liệu của thuật toán phát triển khá lớn.
Bạn không thể gửi các cơ sở dữ liệu này để trao đổi, vì không có phần nào của cơ sở dữ liệu của thuật toán được truy cập ít thường xuyên hơn các phần khác. Nếu bạn buộc các trang của chúng hoán đổi đĩa, thì chúng sẽ được tham chiếu ngay sau đó và chỉ cần trao đổi thẳng trở lại. (Về mặt kỹ thuật, chúng tôi nói "việc truy cập ngẫu nhiên của cơ sở hạ tầng buộc toàn bộ cơ sở hạ tầng phải nằm trong bộ nhớ làm việc của quy trình ".)
Các cơ sở dữ liệu là cần thiết nếu bạn đang quét từ dòng lệnh hoặc quét từ một daemon.
Bạn không thể chỉ sử dụng một phần chữ ký vi-rút, vì bạn không được chọn loại vi-rút nào bạn sẽ gửi và do đó không thể biết chữ ký nào bạn sẽ cần.
Đây là bộ nhớ được sử dụng trên máy 32 bit chạy Debian Wheezy và nó rất hay.
# ps_mem.py
Private + Shared = RAM used Program
281.7 MiB + 422.5 KiB = 282.1 MiB clamd
Chỉnh sửa: Tôi thấy ai đó đề nghị đặt kích thước cài đặt thường trú. Nếu điều này thành công thì việc có kích thước tập hợp cư dân nhỏ hơn kích thước tập làm việc sẽ dẫn đến quá trình đập vào và từ trao đổi. Điều này sẽ làm giảm đáng kể toàn bộ hiệu năng hệ thống. Trong mọi trường hợp, trang hướng dẫn Linux cho setrlimit (RLIMIT_RSS, ...) nói rằng việc đặt kích thước cài đặt thường trú không còn được hỗ trợ và không bao giờ có bất kỳ ảnh hưởng nào đến các quy trình chọn không gọi madvise (MADV_WILLNEED, ...).