Мне нужно решить следующую проблему.Мне нужно построить средство просмотра графиков для просмотра массивного набора данных.
У нас есть несколько файлов в определенном формате, которые содержат миллионы записей, представляющих результаты эксперимента.Каждая запись представляет точку выборки на большом графике графика.Самый большой файл, который я видел, содержит 43,7 миллиона записей.
Средний файл содержит 10 миллионов записей.Каждая запись небольшая (76 байт + дополнительные 12 байт каждая).Полные данные не могут быть загружены в основную память, так как они слишком велики.Я создал новый формат файла, который сжимает данные до 48 байт на запись и упорядочивает данные по частям, которые связаны друг с другом.Я хочу «просмотреть» данные, отображая записи в 2D / 3D графике.Поскольку данные очень плотные, я хотел бы постепенно увеличивать уровень детализации, загружая больше данных и удаляя данные, которые не отображаются в представлении, из основной памяти.
Я также хотел бы получить доступ к группе связанных записей в режиме реального времени и предварительно загрузить подобные записи, чтобы свести время загрузки к минимуму.Это даст пользователю плавный контроль над просмотром данных, а не опыт, подобный просмотру видео на YouTube с очень медленным интернет-соединением.пользователь не может случайным образом и должен использовать элементы управления для навигации, и я хотел бы использовать эту информацию для загрузки соответствующих записей в основную память.
Данные должны постепенно загружаться с диска в зависимости от того, чтов данный момент в основной памяти.Записи в основной памяти, которые не требуются в текущем контексте, могут быть удалены и, если требуется, повторно загружены.
Как получить доступ к данным с диска на высоких скоростях на основе некоторого хеш-номера
Как мне управлять основной памятью, если данные для просмотра в текущем контексте слишком велики.Если ваш ответ - уровень детализации, то как мне построить его для большого набора данных, и должны ли эти данные быть частью файла?
Я работал над этим последниедве недели, и я, кажется, застрял из-за скорости ввода-вывода.
Я работаю на родном C ++ и не могу использовать работу под GPL.Если вам нужна дополнительная информация, дайте мне знать.
Баран