У нас есть приложение WinForms, которое только что развернуто как 64-битная сборка (64-битная, а не процессор), построенная на .NET4/vs2012.код выпуска использует большой объем памяти, отсутствующий во время разработки
При развертывании на citrix серверная команда сообщила, что одна форма занимает 30 и более секунд, чтобы открыть и использует почти 500 мб памяти. После того, как вы открыли и отобразили, память отбрасывается обратно, а приложение просто использует около 30 МБ.
Я запустил этот код на своей локальной машине и проявил то же поведение.
Если я закрываю форму и снова ее открываю, она мгновенно.
Форма не уходит и ничего странного - это огромный объем памяти, который озадачивает.
Однако, если я запускаю код в visual studio, он этого не делает. Форма показывает довольно много моментально.
Я прошел через код, и он не делает ничего необычного, насколько я могу видеть. Он не вызывает никаких вызовов в базе данных, которые, как я думал, могут вызвать проблему или пытаться получить доступ к внешним службам или чем-то странным.
Если он просто сделал это под Citrix я думаю, что там было что-то там происходит, но его также делать это мой локальный компьютер (Windows 7 x64 Pro)
Любые предложения?
500mb очень мало памяти. Что заставляет вас думать, что использование памяти связано с первыми проблемами? –
Я бы предположил, что ему нужно загрузить все необходимые сборки, которые загружаются уже, когда приложение размещено VS. Открытие формы на 30 + секунд странно, однако, как пояснил @JohnSaunders, это не должно быть связано с производительностью. Попробуйте создать [SSCCE] (http://sscce.org), иначе будет сложно определить, в чем проблема. – BartoszKP
Я также запустил 64-разрядную версию отладки, и это только версия 64-разрядной версии, которая занимает огромное количество дополнительного времени и большого объема памяти. 500 МБ является большим по сравнению с приложениями обычного размера около 30-40 мб. Процессор достигает 25% за время, когда он это делает. –