Мой exe (проект vb) при запуске занимает минуту, чтобы показать основную форму. В ходе расследования я нашел следующее. Это может показаться невероятным, но это происходит. Даже много поискового робота не помогло.Странная проблема с производительностью VB.Net при запуске
Случается только в exe, а не при работе с Visual Studio. Случается только в режиме освобождения. Происходит на всех машинах. Уже происходит в производстве для всех пользователей. Подключение к другой базе данных не имеет значения (не проблема с загрузкой данных). Профилировщик SQL Server не показывает активности за одну минуту.
Logging показал, что преступник, кажется, следующая строка:
gfrmMain = New frmMain 'frmMain is a windows form
Далее каротаж показал, что одна минутная задержка происходит до InitializeComponent() вызывается в frmMain конструктора.
Public Sub New()
MyBase.New()
'Reached this line after a minute - what???
InitializeComponent()
...
End Sub
Монитор процесса показал, что не было реестров, файловой системы, сетевой активности для процесса. Он просто сидит без дела.
вещей я попытался:
- Непроверка оптимизаций для выпущенного режима
- Удаления "MyBase.New()" - не имеет никакого значения
Я невежественный, что еще попробовать ?
Примечание: Решение представляет собой сочетание проектов C# и vb. На самом деле основной проект vb и остальные проекты C#. Это началось несколько месяцев назад. Все было хорошо до тех пор (запущено через несколько секунд).
Прикрепите отладчик после запуска и посмотрите на вызовы ... возможно, в смешанном режиме ... Или используйте любой профилировщик для исследования. –
Вы попробовали запустить его как Администратор или какую-то учетную запись с более высокой привилегией? – Jade
Он работает нормально, когда отладчик подключен после запуска. Отличный приемник с профилировщиком VS. Exe работает в режиме администратора, поскольку это является необходимым условием для этого приложения. – Pradeep