Nếu việc sử dụng bộ nhớ là mối quan tâm chính của bạn, thì rất nhiều tính năng nhỏ (số lượng đỉnh thấp) có thể sẽ phù hợp với sở thích của bạn hơn một số tính năng rất lớn (số lượng đỉnh cao). Nhưng bạn có thể thấy rằng "quá nhiều tính năng" cuối cùng có thể áp đảo ngay cả "quá nhiều đỉnh" cho tốc độ xử lý.
Nếu bạn nghĩ về cách các thuật toán phải được cấu trúc để xử lý tất cả các tính năng đối với tất cả các tính năng giữa hai lớp tính năng, thì bạn đang làm việc với các vòng lặp lồng nhau (cho các tính năng trong FC1 và FC2 và cho các đỉnh trong Feature1 và Feature2). Trong các hoạt động như vẽ, số lượng yêu cầu vẽ thường được quan tâm nhiều hơn các đỉnh trong mỗi yêu cầu, nhưng với các thao tác theo chủ đề, các thuật toán chính có thể dựa trên số lượng đỉnh trong mỗi cặp F1 / F2 , với " ký hiệu O lớn " là "O (N * M)" (thời gian hoàn thành thao tác có liên quan đến yếu tố số lượng đỉnh liên quan), với các tính năng lớn trong cả hai tập dữ liệu, đủ gần với O (N ^ 2) để khiến bạn lo lắng về công việc từng hoàn thành.
Tôi đã thành công bằng cách phủ các tính năng lớn (như Nga, Canada, Mỹ, Úc, Brazil, Na Uy) bằng lưới 5 độ (fishnet) để giảm độ phức tạp của tính năng cho xử lý trung gian. Tôi đã thấy các hoạt động đa giác điểm trên lớp QUỐC GIA 1: 15m bị giới hạn đỉnh chạy nhanh hơn 100-1000 lần so với bảng ban đầu (chỉ tăng số lượng tính năng 20 lần). Bạn cần phải cẩn thận trong logic xử lý của mình để xử lý các mối quan hệ một-nhiều và nhiều-nhiều một cách chính xác, đặc biệt là trong trường hợp tồn tại một ranh giới sai.
Ngoài ra còn có khía cạnh "lợi nhuận giảm dần" để tiết kiệm khi làm việc với các tính năng nhỏ hơn - Tôi đã giải quyết trên lưới 5 độ bằng cách thử nghiệm hiệu suất của giao cắt với 90, 45, 30, 20, 15, 10, 5, 3, 2 và Các lưới 1 độ, cho thấy sự gia tăng đáng báo động về thời gian xử lý khi số lượng các tính năng tăng lên.
Có những lần, nơi ít tính năng với nhiều đỉnh có hiệu quả hơn, do đó nó có lẽ là giá trị các nỗ lực để làm một số xét nghiệm về trật tự hoạt động với dữ liệu thực tế (không phải đơn giản hóa các tập con thử nghiệm) trước khi cam kết một cách tiếp cận trong khác (cân bằng việc sử dụng bộ nhớ RAM với thời gian chạy).
LƯU Ý: Tôi đã chạy lại bài tập chia lưới với phần cứng hiện đại và đạt hiệu suất tối ưu với lớp phủ 30 độ, để tăng nguy cơ các tính năng quá nhỏ và tăng tầm quan trọng của việc đánh giá với dữ liệu sản xuất.