Дизайнер winform для Visual Studio 2012 ОЧЕНЬ медленный

Недавно мы перенесли один из наших проектов Winforms в Visual Studio 2012 из Visual Studio 2008. Переход прошел замечательно гладко, и все строит отлично, но теперь мы боремся с дизайнером winforms, который работает невероятно медленно.

Чтобы привести пример, если мы откроем небольшую форму (форма содержит два текстовых поля, числовое обновление и две кнопки - все стандартные встроенные элементы управления, ни одна сторонняя сторона), это займет приблизительно 40-45 секунд в 2012, однако в 2008 году он откроется через 1 или 2 секунды. Для наших более крупных форм это различие гораздо более выражено. В 2008 году для открытия формы потребуется около 7 секунд, но в 2012 году она займет более 6 минут. Хуже всего то, что это блокирующее действие, VS2012 почти полностью не отвечает, открывая формы. Это также происходит, просто нажав на .h формы, поэтому нам не нравится, что мы можем легко избежать этого, просто придерживаясь самого кода.

Кто-нибудь еще испытал это? Кто-нибудь знает, почему это происходит, и если есть что-то, что можно сделать по этому поводу?

Дополнительная информация: Наше приложение представляет собой приложение Winforms С++/CLI. Поведение наблюдается на всех наших машинах разработки, работающих под управлением Windows 7 x64. Моя машина - процессор Core i7 860 с 12 ГБ ОЗУ (более 60% бесплатно сейчас, когда я сравнивал выше) - более чем достаточно, я бы подумал. В любом случае моя система ни в коем случае не работает медленно, это просто дизайнер VS2012.

EDIT: Только для дополнительного разъяснения мы не установили ни одного дополнения или что-то в этом роде. Это установка virgin VS2012.

EDIT2: Это тоже не сетевая вещь.

Ответ 1

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

Недавно я вернулся на VS2012 и обновился до версии 3. Несмотря на то, что я использовал разные заметки о выпуске, я не видел упоминания о производительности в этой области, но я рад сообщить, что теперь дизайнер намного, гораздо быстрее.

Просто, чтобы немного загрязнить воды, моя машина для разработки была обновлена ​​с тех пор, как я изначально разместил ее, теперь у меня есть процессор AMD FX-8350, 16 ГБ оперативной памяти и SSD. Когда я впервые получил эту новую машину, первое, что я пробовал, это VS2012, и я обнаружил, что это было так же медленно, как и раньше. Теперь он способен загружать ту же форму, которая использовала 6 минут + примерно за 15 секунд. Это почти вдвое больше, чем на VS2008, но я могу жить с этим, поскольку это огромный скачок от 360s+. Я упоминаю об этом только потому, что не могу быть уверенным, была ли ошибка исправлена ​​в дизайнере или просто улучшена производительность - возможно, с использованием дополнительных процессорных ядер. Другими словами, ваш пробег может отличаться, но если вы еще не пробовали его, попробуйте установить Update 3.

Вы можете скачать Update 3 здесь: http://www.microsoft.com/en-us/download/details.aspx?id=39305

Ответ 2

Я не знаю причину задержки, но могу сказать вам, как определить причину. Используйте другой экземпляр Visual Studio для его отладки. Присоединитесь к процессу devenv.exe: Отладка Visual Studio

Если вы разрываете все потоки один раз в то время, во время задержки, статистически, вы, скорее всего, найдете стек, содержащий вызовы, вызывающие задержку. Это "профайлер плохого человека", но он работает очень хорошо. Ранее я использовал эту технику для обнаружения и представления регрессивных изменений производительности в генераторе кода Visual Studio 2010 (которые не были исправлены Microsoft).

Ответ 3

Я на Visual Studio 2010, и я испытываю то же самое. Когда я нахожусь в Дизайнере, и я нажимаю на соответствующий файл .h или добавляю еще один элемент в GUI, тогда VS начинает "вычислять" новый код для дизайна и полностью забивает процессор полностью, чтобы повредить.

В моей Windows Form содержится много элементов. Со временем, когда я все больше добавлял к пользовательскому интерфейсу, переход от конструктора к коду становился все медленнее и медленнее. В настоящее время требуется около 4 минут (!!!), чтобы переключаться с конструктора на код каждый раз, когда я что-то изменяю в дизайне.

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

Ответ 4

Я не могу предложить никаких рекомендаций по решению этой проблемы. Но я могу сказать, что у меня тоже. Это происходит как в Visual Studio 2010, так и в 2012 году. Я использую формы Windows без WPF, поэтому я думаю, что проблема не зависит от этого.

Ответ 5

I THOUGHT У меня была такая же проблема (хотя и с VS2013), но, возможно, то, что я наблюдал, может быть полезно для других... Я обвиняю мое обновление с 32-разрядной WinXP до 64-разрядной версии Win7. Вот почему.

Раньше у меня был VS2008 Express на машине WinXP. Материнская плата умерла, поэтому я получил блестящую новую машину для Windows 7. Для сравнения, эта новая машина невероятно быстро работает с SSD, вдвое больше памяти и гораздо более быстрым процессором.

Сначала я установил VS2008, но прежде чем у меня появилась возможность работать с редактором форм, я понял, что мне придется VS2013 по другим причинам. Таким образом, обе версии Visual Studio все еще установлены.

Угадайте, что, на моей сверхбыстрой машине Windows 7, BOTH версии visual studio имеют очень медленный редактор форм. У меня довольно сложная форма, которую я загрузил в обе версии VS. Форма идентична, за исключением того факта, что она была перенесена на Visual Studio 2013.

Этот компьютер не старше 2 недель, и я уверен, что он чист от вредоносного ПО.

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

Я предполагаю, что Windows 7 имеет другой способ рендеринга графики, в частности в редакторе форм. (Кстати, мы смотрим на реальные элементы управления в редакторе форм или просто на их графическом представлении? Очевидно, что они не работают в редакторе форм.)

Я попытался переключить тему на "Windows classic" (без полупрозрачности, квадратные углы и серый фон), которые не делали заметной разницы.

Ответ 6

Попробуйте изменить настройки компилятора вашего проекта С++ из /clr: pure to/clr.