Tôi hiện đang làm việc trên một vấn đề liên quan đến lập trình mà tôi đã cố gắng tạo một băm dữ liệu khổng lồ. Chìa khóa cho dữ liệu là việc triển khai bộ nhớ thấp tùy chỉnh của CharSequence thực hiện hashCode() và bằng (...) và giá trị là đối tượng Integer. Có thể có hàng triệu mục trong hashtable này và tôi quản lý để giảm đáng kể sử dụng bộ nhớ cho giá trị bằng cách có số nguyên là một con trỏ trong một tệp dữ liệu tôi muốn băm nhưng vấn đề là khóa có thể hàng chục byte (trung bình 25 byte) và rằng các phím cần phải được giữ trong bộ nhớ trong việc thực hiện mặc định của HashMap.Giới hạn băm bộ nhớ thấp được đề xuất để thực hiện cho Java
Tôi cần một bản đồ băm có chi phí bộ nhớ thấp và có thể trang các phím vào đĩa hoặc lưu trữ một cách khác một biểu diễn băm của các khóa. Nếu các khóa được tự băm thì tôi sẽ lo ngại về các xung đột băm.
Lý tưởng nhất, tôi muốn có thể lưu trữ một triệu mục trong bản đồ trên mỗi 50MB không gian heap (một mảng byte là 25 byte trong đối tượng khóa và Integer trong phần giá trị).
Có ai có bất kỳ trải nghiệm nào với Maps được sao lưu hệ thống tập tin có bộ nhớ thấp được tối ưu hóa để giảm dấu chân của các phím không?
Cảm ơn,
Chris
không gian và thời gian thường trong mối quan hệ cân bằng. yêu cầu hiệu suất/khả năng mở rộng của bạn để thêm, tìm kiếm, xóa nút là gì? bạn có thể sử dụng một mảng nếu bạn chỉ muốn bộ nhớ thấp. –
Loại âm thanh như bạn muốn có trong cơ sở dữ liệu bộ nhớ? –