У меня был точно такой же опыт работы с DotNetNuke в прошлом. Наша проблема заключалась в том, что у нас было установлено около 125-150 модулей, все со своими сборками. Огромное их количество приведет к тому, что задержка первого запроса будет близка к минуте или более. Во время развертывания было хуже, так как мы намеренно переустанавливали наши собственные модули. Позже мы изменили сценарии развертывания, чтобы избежать установки уже установленных модулей, и это помогло. Тем не менее, первый запрос все еще был медленным, потому что он выполнял оба компилятора VB.NET и C # (наши модули были C #, в то время как DNN был VB.NET в то время).
Несмотря на то, что мы немного помогли использовать атрибут optimizeCompiliations
, вам также необходимо учесть, что сканер вирусов в режиме реального времени не контролирует каталог, в котором находится код, и папку временных файлов ASP.NET. Это замедлит компиляцию до сканирования.
Далее, вы можете рассмотреть возможность использования ILMerge для объединения некоторых сборок в одну сборку, но я знаю, что мы отказались от этого параметра, поскольку он вызвал у нас больше проблем с развертыванием, чем он собирался решить.
Наконец, это сценарий, в котором некоторое дополнительное оборудование не является плохой идеей. Что больше всего поможет, так это более быстрый процессор, просто чтобы сократить время компиляции до разумного количества времени.
DotNetNuke.com имеет несколько советов по настройке производительности в своей вики. Больше всего с производительностью больше всего помогло усечение таблиц EventLog и SiteLog, так как они могут стать очень большими, если вы не обращаете на них внимания. Также есть одна или две таблицы, участвующие в индексации сайта, которые в некоторых версиях вышли из-под контроля. Честно говоря, это не твоя проблема. У вас типичная проблема холодного запуска ASP.NET.
Есть также некоторые распространенные проблемы с производительностью ASP.NET , на которые вы также можете обратить внимание. В этом рассказывается об улучшении производительности как при холодном, так и при теплом старте.