Сохраняются ли свойства строковых ресурсов (.resx) в памяти?

У меня есть файл ресурсов (.resx), и в настоящее время он имеет 58 строковых свойств. Это количество строковых свойств может расти.

Я сомневаюсь, что эти строки хранятся в памяти? Если у меня 200, все будут храниться в памяти? Или строки хранятся в файле, а ResourceManager обращается к файлу? Или что-нибудь еще? Как это работает?


person Vinicius Ottoni    schedule 29.02.2012    source источник


Ответы (1)


Обычно файл .resx компилируется в .resources с файлом resgen.exe и сохраняется как ресурс сборки внутри самой сборки. Если вы посмотрите на свойства файла ResX в своем проекте Visual Studio, вы увидите, что действие сборки является встроенным ресурсом, что приводит к его внедрению в сборку. Таким образом, каждый раз, когда загружается сборка, вы также загружаете файл ресурсов. Может быть другой способ использования файлов ресурсов, который не хранит их в памяти, но это обычный способ их использования.

person luksan    schedule 29.02.2012
comment
Это (строки в памяти) может вызвать накладные расходы памяти? Есть ли количество строковых свойств, о которых мне нужно беспокоиться (о накладных расходах памяти)? - person Vinicius Ottoni; 29.02.2012
comment
200 струн для меня совсем не много. Однако, если вас беспокоит потребление памяти, проверьте в столбце «Память (частный рабочий набор)» диспетчера задач Windows процесс, когда он запущен. Если потребление памяти неприемлемо, вам нужно будет изучить другой механизм загрузки строк, который не использует встроенные строки ресурсов. - person luksan; 29.02.2012
comment
Также имейте в виду, что современные операционные системы имеют виртуальную память, поэтому они могут выгружать страницы памяти на диск при нехватке памяти. - person luksan; 29.02.2012