Какова стоимость времени выполнения include_bytes! или include_str? - PullRequest
2 голосов
/ 06 мая 2020

Макросы include_bytes! и include_str! кажутся мне загадкой. Я понимаю, что файл включен в двоичный файл, но как он работает во время выполнения?

  1. Когда файл загружается в память?
  2. Есть ли причина не хранить результат include_bytes! / include_str! как const верхнего уровня? Будет ли файл оставаться в памяти в течение всего времени выполнения приложения?
  3. Существуют ли какие-либо штрафы за включение «большого» файла, кроме двоичного размера?

1 Ответ

5 голосов
/ 06 мая 2020

Нет затрат на ЦП во время выполнения.

  1. Файл включается в двоичный файл во время компиляции. Когда операционная система загружает двоичный файл, он помещается в память вместе с исполняемым кодом.
  2. Я бы посоветовал использовать переменную static или const для include_bytes / include_str. Включенные данные будут в памяти независимо от того, если компилятор не определил, что они все равно не использовались и были оптимизированы.
  3. Нет.

См. Также:

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