Каковы преимущества файлов с отображением памяти?

Я использовал файл отображения filesystem памяти для реализации функции memory «автозаполнения», когда пользователь filesystem печатает. У меня более 1 filesystem миллиона артикулов, хранящихся memory в одном индексном файле. В language-agnostic файле есть некоторая типичная language-independent информация заголовка, но language-independent большая часть файла представляет language-agnostic собой гигантский массив записей memory фиксированного размера, отсортированных language-agnostic по ключевому полю.

Во время filesystem выполнения файл сопоставляется memory с памятью, преобразуется language-agnostic в массив C в стиле struct, и мы filesystem выполняем двоичный поиск, чтобы filesystems найти совпадающие номера filesystems деталей по мере ввода пользователем. Только filesystem несколько страниц памяти filesystems файла фактически считываются language-independent с диска — в зависимости от memory того, какие страницы были language-agnostic найдены во время двоичного filesystems поиска.

  • Параллелизм. У меня была проблема с реализацией, из-за которой иногда файл отображался в памяти несколько раз в одном и том же пространстве процесса. Насколько я помню, это была проблема, потому что иногда система не могла найти достаточно большой свободный блок виртуальной памяти для сопоставления файла. Решение состояло в том, чтобы сопоставить файл только один раз и перенаправить все вызовы к нему. Оглядываясь назад, использование полноценной службы Windows было бы круто.
  • Произвольный доступ — бинарный поиск, безусловно, имеет произвольный доступ и молниеносно
  • Производительность. Поиск очень быстрый. По мере того, как пользователи вводят текст, во всплывающем окне отображается список совпадающих номеров деталей продукта, и этот список сокращается по мере того, как они продолжают вводить текст. Заметной задержки при наборе текста нет.

language-agnostic

memory

filesystems

2022-10-17T06:20:54+00:00
Вопросы с похожей тематикой, как у вопроса:

Каковы преимущества файлов с отображением памяти?