Tôi phải viết chương trình so sánh 10'000'000 + Đối tượng với nhau. Các thực thể về cơ bản là các hàng phẳng trong một tệp cơ sở dữ liệu/csv.So sánh 10 triệu thực thể
Thuật toán so sánh phải khá linh hoạt, dựa trên công cụ quy tắc trong đó người dùng cuối nhập quy tắc và mỗi đối tượng được đối sánh với mọi thực thể khác.
Tôi đang suy nghĩ về cách tôi có thể chia công việc này thành các khối lượng công việc nhỏ hơn nhưng tôi chưa tìm thấy bất kỳ điều gì. Kể từ khi các quy tắc được nhập bởi người dùng cuối, sắp xếp trước DataSet có vẻ không thể.
Điều tôi đang cố gắng làm bây giờ phù hợp với toàn bộ Số liệu trong bộ nhớ và xử lý từng mục. Nhưng đó không phải là hiệu quả cao và đòi hỏi xấp xỉ. 20 GB bộ nhớ (được nén).
Bạn có ý tưởng làm cách nào để chia nhỏ khối lượng công việc hoặc giảm kích thước của nó không?
Cảm ơn
Mỗi thực thể phải được so sánh với * mọi * thực thể khác? Bạn có chắc không? Đó là ~ 5x10^13 kết hợp ... Nếu bạn có thể thực hiện một triệu so sánh mỗi giây, nó sẽ mất hơn một năm rưỡi để làm. –
Công cụ Quy tắc này đã được viết chưa? Điều này có vẻ như công việc phù hợp hơn với cơ sở dữ liệu hơn C# –
Khá nhiều. Nếu tôi biết các quy tắc như thế nào các thực thể được so sánh ngay bây giờ tôi có thể làm giảm đáng kể khối lượng công việc. Nhưng tôi không biết làm thế nào chính xác họ sẽ xác định các quy tắc phù hợp – senic