include_bytes 的运行时成本是多少!或包含_str?

cam*_*ous 2 rust

include_bytes!include_str!宏看起来像一个谜给我。我知道该文件包含在二进制文件中,但它在运行时如何工作?

  1. 文件什么时候加载到内存中?
  2. 是否有任何理由不将include_bytes!/的结果存储include_str!为顶级const?文件会在应用程序运行的整个持续时间内都在内存中吗?
  3. 除了二进制大小之外,包含“大”文件是否有任何处罚?

She*_*ter 5

没有运行时 CPU 成本。

  1. 该文件在编译时包含在二进制文件中。当操作系统加载二进制文件时,它会与可执行代码一起放入内存中。
  2. 我鼓励对/使用 astaticconst变量。无论如何,包含的数据都将在内存中,除非编译器已确定它无论如何都未使用并且已被优化掉。include_bytesinclude_str
  3. 不。

也可以看看: