Почему блоки со знаком являются медленными для загрузки?

Писк хорош и свободен и очень прохладный

12
задан Foxfire 24 October 2009 в 17:48
поделиться

6 ответов

Взгляните на эти ссылки:

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

15
ответ дан 2 December 2019 в 03:54
поделиться

Загрузка подписанных сборок определенно будет медленнее , чем неподписанные копии, потому что подпись должна быть проверена, но этим можно пренебречь.

Переход с 5 секунд на 90 секунд ?? Думаю нужно связаться с автором сборки и спросить, меняли ли они только подпись: -)

1
ответ дан 2 December 2019 в 03:54
поделиться

Попробуйте запустить приложение из Visual Studio с помощью «Step over». Это запустит код, перейдя через каждое приложение, чтобы вы могли проверить, что занимает так много времени. Однажды у меня было это, и выяснилось, что мой sql-сервер действительно сломался.

Другой способ узнать, почему это занимает так много времени, - это разместить точки останова, разбросанные по загрузочному коду, и посмотреть, в чем узкое место. Если приложение занимает 90 секунд до , оно сначала нравится вашему , возможно, что-то с XCeed или загрузка подписанных сборок.

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

1
ответ дан 2 December 2019 в 03:54
поделиться

Возможно, подписанные сборки не имеют NGEN, а неподписанные.

0
ответ дан 2 December 2019 в 03:54
поделиться

Я предполагаю, что у вас установлены настройки безопасности таким образом, чтобы сертификаты сборок проверялись. Таким образом, он, вероятно, пытается получить доступ к Интернету для проверки сертификата, а затем ожидает тайм-аута (30 секунд - ОЧЕНЬ типичное значение тайм-аута).

Вы можете проверить это, если посмотрите, что происходит за эти 30 секунд. Чтобы мое предположение было правдой, за эти 90 секунд должно быть мало использования процессора и мало обращений к жесткому диску. Если у вас высокая загрузка процессора или ваш жесткий диск, то это что-то другое.

Кстати: Другой вариант - если ваш жесткий диск полностью заполнен, а сборки ЧРЕЗВЫЧАЙНО фрагментированы (но 90 секунд - это больше, чем я когда-либо слышал в тот случай).

1
ответ дан 2 December 2019 в 03:54
поделиться

Сообщение Джейсона Эванса содержит ответ, но в виде ссылки. Я думал, что было бы хорошо опубликовать фактическое решение здесь:

Создайте файл appname.exe.config в той же папке, что и исполняемый файл (где appname - это имя вашего исполняемого исполнения; для разработки это будет в отладке папки вывода). Это показывает файл XML, который предполагает, что у вас нет других записей в основном файле конфигурации; Если у вас уже есть файл, я предполагаю, что вы просто добавите новые разделы / текст по мере необходимости:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <runtime>
        <generatePublisherEvidence enabled="false" />
    </runtime>
</configuration>
17
ответ дан 2 December 2019 в 03:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: