Есть ли снижение производительности при загрузке классов из других сборок? - PullRequest
0 голосов
/ 20 мая 2011

Вот сценарий.Я построил класс оболочки данных для выполнения хранимых процедур.Я хотел бы использовать этот класс в других проектах.Как все мы знаем, как правило, крайне важно, чтобы код уровня данных выполнялся как можно быстрее, чтобы избежать узких мест.

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

Ответы [ 3 ]

2 голосов
/ 20 мая 2011

Следует отметить, что, хотя с загрузкой сборки связана ненулевая (хотя, вероятно, тривиальная) стоимость, почти во всех случаях это происходит только один раз на домен приложений, поэтому необходимость в узком месте не возникает.

1 голос
/ 20 мая 2011

Вы понимаете, что весь фреймворк также попадает в категорию other сборок.

Я не думаю, что сроки, которые здесь используются, имеют значение и будут влиять на ваши процессы.

0 голосов
/ 20 мая 2011

Типы загружаются JIT в первый момент, когда вам требуется какой-либо тип из другой сборки. Сначала загружается сама сборка, затем содержатся все типы.

После этого типы находятся в памяти, и при их создании штраф не взимается.

Все это верно для AppDomain. Но вы, вероятно, используете только один.

Таким образом, проблема с производительностью, на которую вы ссылаетесь, может возникнуть только после загрузки сборки питомца.

Если вы обеспокоены тем, что это может быть запущено, когда это не нужно, вы можете выбрать предварительную загрузку всех необходимых вам сборок заранее ( ссылка на один мой вопрос ).

...