Có ba chỉ số hiệu năng cho bộ lọc Bloom có thể đánh đổi: thời gian tính toán/thực thi (tương ứng với số k hàm băm), kích thước bộ lọc (tương ứng với số m bit), và xác suất lỗi (tương ứng với tỷ lệ dương tính giả f = (1 - p)k).
Bộ lọc Bloom (BF) đưa ra dung sai lỗi (error tolerance) để cải thiện hiệu năng tra cứu và hiệu quả không gian. Bộ lọc Bloom trả về true hoặc false. Do đó, kết quả BF rơi vào một trong các lớp: true positive, false positive, true negative, false negative. Số lượng lớn nhất BF chứa false positive. Cả false positive và false negative gây chi phí cho hệ thống. BF dùng mảng lưu thông tin phần tử. False positive: BF trả về true khi không chứa phần tử. False negative: BF trả về false khi chứa phần tử. Do đó BF thuộc cấu trúc dữ liệu xác suất (probabilistic data structure).
Kích thước Bloom filter và số hàm băm
Chúng ta hiểu nếu kích thước bloom filter quá nhỏ, sớm đủ các trường bit biến thành '1' và bloom filter sẽ trả về 'false positive' cho mọi đầu vào. Vì vậy, kích thước bloom filter là quyết định rất quan trọng. Bộ lọc lớn hơn có ít false positive hơn, nhỏ hơn thì nhiều hơn.
Vậy kết luận: kích thước bloom filter hoàn toàn dựa trên 'tỷ lệ lỗi dương tính giả' (false positive error rate).
Tham số quan trọng khác: số hàm băm sẽ dùng. Càng nhiều hàm băm, bloom filter càng chậm, và càng nhanh lấp đầy. Nếu quá ít, có thể bị nhiều false positive.
Có thể tính tỷ lệ lỗi dương tính giả p dựa trên kích thước bộ lọc m, số hàm băm k, số phần tử chèn n, theo công thức:
p ≈ (1 - e(-kn/m))k
Thực tế chủ yếu cần xác định m và k. Vì vậy, nếu tự đặt dung sai lỗi p và số phần tử n, ta dùng các công thức sau để tính tham số:
m = (-n ln p) / (ln 2)2
k = (m/n) * (ln 2)