Всем привет!
Форумчане, помогите разобраться в важном вопросе!!!
Суть проблемы следующая - необходимо обеспечить высокую скорость рандомного доступа к большому массиву данных (относительно большому, несколько мегабайт).
Если брать стандартную базу данных, то для поиска элемента в таблице из 1000000 компонентов требуется порядка 100 микросекунд, что не приемлемо.
Рандомный доступ в ОЗУ современных ПК может достигать 300 наносекунд (могу ошибаться). То есть если выполнять поиск по таблице без базы данных, то 2^20=1000000, это значит нам нужно как минимум 20 раз выполнить рандомный доступ в память для поиска эелемента. В теории получается порядка 6 микросекунд. Это уже на много лучше, но не достаточно.
Кто нибудь может сказать, можно ли взять, например Xeon с 10 Мб кеша ОЗУ и разместить массив целиком в нем и производить поиск в кеше не обращаясь в ОЗУ?
Буду рад любым комментариям!