Cho trước tôi có một mảng HUGE và một giá trị từ nó. Tôi muốn lấy chỉ mục của giá trị trong mảng. Có cách nào khác, thay vì sau đó gọi Array#index
để lấy nó? Vấn đề xuất phát từ nhu cầu giữ một mảng thực sự lớn và gọi Array#index
số lần khổng lồ.
Sau một vài lần thử, tôi nhận thấy rằng bộ nhớ đệm lập chỉ mục bên trong các phần tử bằng cách lưu trữ cấu trúc với (value, index)
các trường thay vì giá trị của chính nó mang lại một bước tiến lớn về hiệu suất (chiến thắng gấp 20 lần).
Tôi vẫn tự hỏi liệu có cách nào thuận tiện hơn để tìm chỉ mục của phần tử en mà không cần bộ nhớ đệm (hoặc có một kỹ thuật bộ nhớ đệm tốt sẽ tăng hiệu suất).