2014-09-06 37 views
1

性能方面,将文件嵌入到dll的资源部分是错误的吗?
这可能看起来很愚蠢,但目的是试图在dll中嵌入一些信息,稍后可以通过某些方法获取信息,以防整个解决方案和文档丢失,并且只有dll。
做这样的事情有什么缺点?
是否建议或禁止?在dll中嵌入一些文件是错误的吗?

+0

你不使用源代码管理吗? – leppie 2014-09-06 09:58:28

+0

假设没有,假设存储库已经崩溃,我没有备份! – Breeze 2014-09-06 10:01:14

+1

这是第一个问题。 [解决它](http://stackoverflow.com/questions/4609483/version-control-in-visual-studio)。 – 2014-09-06 10:11:10

回答

5

嵌入式资源完成很有效。在引擎盖下,它使用操作系统的需求分页虚拟内存功能。内存映射文件的确切等价物。换句话说,资源可以直接在内存中访问。在开始使用之前,您不需要为资源付费。对资源的第一次访问强制它从文件中读取并复制到RAM中。而且是很便宜的再次取消映射,操作系统可以简单地丢弃该页面。没有办法让它更有效率。

勋章的另一面是它永久映射到虚拟内存。换句话说,你的进程失去了资源占用的内存空间。您将更快地运行可用地址空间,而OutOfMemoryException更可能。

这是不是你通常担心的,直到你吞噬了32位进程中的半个千兆字节。在64位进程中不要担心。

+0

其实我是在考虑嵌入一个文本文件或一个包含dll本身重要和必要信息的doc文件,我担心它会对dll的性能产生任何影响,因为它必须非常优化。 – Breeze 2014-09-06 13:52:45