2012-02-29 93 views
4

我有一个资源(.resx)文件,它目前有58个字符串属性。这种字符串属性的数量可以增长..字符串资源(.resx)属性保存在内存中吗?

我的疑问是,这些字符串保存在内存中?如果我有200个,是否都会留在记忆中? 或者字符串保存在文件中并且ResourceManager访问该文件?还是其他什么?这是如何工作的?

回答

2

通常,.resx文件会被编译到带有resgen.exe文件的.resources文件中,并作为程序集资源存储在程序集本身中。如果您查看Visual Studio项目中的ResX文件的属性,您会看到Build Action是嵌入式资源,这是导致它嵌入到程序集中的原因。因此,无论何时加载程序集,都会加载资源文件。可能有另一种方法来使用资源文件,它们不会将它们保存在内存中,但这是它们使用的正常方式。

+0

那(内存中的字符串)可能会产生内存开销?有很多字符串属性,我不得不担心(关于内存开销)? – 2012-02-29 18:08:48

+0

200根琴弦对我来说听起来不是很多。但是,如果您担心内存消耗,请在Windows任务管理器的内存(专用工作集)列中查看该进程在运行时的情况。如果内存消耗不可接受,则需要查看另一种加载字符串的机制,即不使用嵌入式资源字符串的机制。 – luksan 2012-02-29 18:57:34

+0

另外请记住,现代操作系统具有虚拟内存,因此当内存不足时它们可以将内存页交换到磁盘。 – luksan 2012-02-29 18:59:30

相关问题