2016-05-13 2 views
0

Встраиваемые ресурсы используются только для компиляции файла как двоичной части?Встраиваемые ресурсы - resx - performance - C#

Полезно ли использовать встроенные ресурсы по соображениям производительности?

Этот вопрос касается

  • файлы XML, сохраненные в виде внедренных ресурсов
  • Resx файлов (строки)

В обоих случаях, там же выигрыш в производительности: некоторые стратегии кэширования, или что-то вроде этого (так как это может управляться как исходный код/​​сборки).

Для примера вместо resx я могу использовать хеш-таблицу (созданную в последнее время). В моем случае хэш-таблица может быть настолько большой, чтобы оставаться навсегда в памяти. Итак, Resx - это помощь с какой-то стратегией кеша?

У меня такая же проблема для объекта дерева. Использование его из встроенного XML-файла не могло мне помочь, или я должен реализовать всю стратегию кеша?

СЧИТАЕТ

ответ

2

Функция внедренный ресурс был добавлен в первую очередь потому, что из соображений производительности. Невозможно сделать это быстрее на операционной системе виртуальной памяти с требованием, например Windows. Вы получаете полное представление о файле с отображением памяти для чтения содержимого ресурса.

Это не намного лучше, чем чтение отдельного файла, но вы не платите за поиск файла. Как правило, это дорогостоящая операция на небольших ресурсах и сильно влияет на время холодного запуска приложения. Не иметь большого разброса файлов для развертывания - это очень практическое преимущество.

Они занимают память, конечно, но это virtual память. Просто номера процессора, по одному на каждые 4096 байт. Также дешевый вид виртуальной памяти, он подкрепляется исполняемым файлом вместо файла подкачки. Фактически вы не платите и не начинаете использовать ОЗУ до тех пор, пока не получите доступ к ресурсу в своей программе. Эта RAM, как правило, снова будет выпущена, если вы не будете повторно использовать ресурс. Он устанавливает верхний предел количества данных ресурсов, которые вы можете вставлять, и выводит на 2 гигабайта.

Что они начинают с XML-ресурса, имеет значение только во время сборки, средство Resgen.exe превращает его в двоичный блок, прежде чем он будет встроен в исполняемый файл. Преимущество XML заключается в том, что он отлично справляется с IDE и упрощает восстановление исходного ресурса после того, как вы потеряли исходную художественную работу.

Смежные вопросы