2012-05-24 4 views
0

В this answer есть довольно интересное утверждение: наличие дополнительных неиспользуемых сборок .NET в GAC ухудшает производительность.Имеет ли неиспользуемые сборки в GAC производительность?

В частности, речь идет о следующем случае: в аппарате GAC есть сборка X.Y.Z, и никакая программа на этой машине не использует эту сборку, и утверждение состоит в том, что наличие этой сборки в GAC может ухудшить производительность.

Это правда? Есть ли какие-либо подробные данные по этому аспекту?

+1

Этот ответ не говорит о том, что неиспользуемые сборки ухудшают производительность. Как вы дошли до этого вывода? –

+0

@Cicada: В нем сказано конкретно * Один сборник для загрузки, крошечное улучшение производительности, которое вы получаете *. Как еще я могу это интерпретировать? – sharptooth

+0

Это относится к Windows Azure, так как я предполагаю, что он загружает все сборки в GAC? Это неправда для настольных ПКК, где только узлы, на которых вы зависите, загружаются средой выполнения. –

ответ

3

Это влияет на холодные пуски, всегда характеристику перфоратора, которая получает наибольшее внимание в управляемом коде, потому что она на сегодняшний день является самой медленной и самой заметной. Управляемый код содержит много DLL для поиска, как сборок, так и ngen-ed DLL. Это медленный процесс на жестком диске, требуется некоторое время, чтобы выкопать файлы, когда в кеше файловой системы еще ничего нет. Большие каталоги занимают больше времени для поиска.

Это не исключительная проблема для управляемого кода. У этой проблемы также возникают собственные программы, использующие множество DLL. Вот почему большие программы, такие как Office apps или Acrobat Reader, используют «оптимизаторы», небольшую программу, которая запускается во время входа в систему, которая ничего не делает, кроме касания набора DLL, который требуется основной программе. Разогрев кеш файловой системы. И фактически замедляя любую программу, вы действительно начинаете, когда вы входите в систему в первый раз. действительно. Я всегда удаляю их, но у них есть привычка возвращаться, особенно Adobe. Windows Superfetch - превосходное решение, оно динамически настраивает набор исполняемых файлов для предварительного кэширования на основе фактического использования.

Фактически удаление сборок из ПКК, конечно, не является реалистичным решением. В любом случае эффект мал.

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