Чтение данных в исполняемом файле при запуске - PullRequest
3 голосов
/ 19 августа 2011

G'Day!

У меня есть исполняемый файл (Unix или Windows - он должен быть кросс-компиляцией). Если кто-нибудь откроет этот исполняемый файл любым другим редактором и напишет что-нибудь до конца - приложение все равно будет работать идеально. При выполнении приложение со всеми своими данными загружается в ОЗУ. Таким образом, пользовательская часть файла также загружается в память.

Есть ли шанс прочитать эти данные?

Мне нужны эти данные в быстром доступе. Другие обходные пути не подходят, потому что это занимает слишком много времени:

  1. Чтение непосредственно из файла (на жестком диске) или отображение его не очень хорошо, потому что приложение должно читать этот файл при каждом запуске, но у этого приложения много запусков в секунду.
  2. Использование общей памяти с другим процессом (что-то вроде сервера, на котором хранятся данные) не является кросс-компиляцией
  3. Использование каналов между приложением и так называемым сервером недостаточно быстро, imho.

Вот почему я решил написать кое-что до конца приложения.

Заранее спасибо!

1 Ответ

4 голосов
/ 19 августа 2011

Вы заново изобретаете

Я также думаю, что вы, возможно, оптимизируете не те вещи.

Чтение непосредственно из файла (на жестком диске) или отображение его не очень хорошо, потому что приложение должно читать этот файл при каждом запуске, но у этого приложения много запусков в секунду.

Ядро [1] на намного умнее нас и прекрасно способно кешировать отображаемую информацию. Черт возьми, если вы отобразите его только для чтения, разница будет с прямым доступом к данным из базового образа вашей программы.

[1]: это относится как к окнам, так и к Unix

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...