Visual Studio 2012 дизайнер Winform очень медленно

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

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

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

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

РЕДАКТИРОВАТЬ: просто для дополнительного разъяснения, у нас нетЯ установил ЛЮБЫЕ дополнения или что-то в этом роде. Это девственная установка VS2012.

РЕДАКТИРОВАТЬ 2: Это неПохоже, что это и вещь для сети.

 Kushan08 нояб. 2012 г., 15:09
Просто, чтобы держать людей в курсе .... там "Здесь не было абсолютно никаких изменений. Я'Мы публиковали сообщения на нескольких других форумах, но никто не знает, чтоПричиняет это и как помочь исправить это.
 Kushan11 янв. 2013 г., 14:55
Все еще нет ответов. Поговорив с другом, он предположил, что, возможно, он был медленным из-за использования WPF (и, следовательно, в большей степени зависит от графического процессора). Правда, графический процессор в моей рабочей машине был очень слабой Geforce (Geforce 310). Я взял проект домой на свой собственный компьютер, на котором есть Geforce 560 Ti - драйверы на сегодняшний день и тому подобное. Все еще без изменений, медленнее, чем что-либо.
 Kushan23 окт. 2012 г., 11:39
Мы провели несколько предварительных тестов, чтобы исключить наличие сети. Я не могпросто отключите кабель Ethernet, так как на моей машине установлено несколько виртуальных адаптеров (благодаря VMware), поэтому я просто отключил их все. Я запустил тест ping и сразу получил отказ подтвердить это. Не было никаких изменений, которые я мог видеть в рамках VS2012. Я также управлял Wireshark и хотя яя не очень знаком с ним, я не могПри запуске VS2012 ничего не происходит. Впрочем, для проверки может понадобиться лучше, чем я.
 Hans Passant18 окт. 2012 г., 15:24
Задержки более 40 секунд - это сетевые задержки. Время ожидания по умолчанию при попытке соединения по протоколу TCP составляет 45 секунд. Используйте сниффер tcp / ip, чтобы узнать, к чему он пытается подключиться.
 user18032618 окт. 2012 г., 19:08
Чтобы исключить сетевой трафик, вы можете отключить сетевой адаптер.

Ответы на вопрос(6)

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

Решение Вопроса

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

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

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

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

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

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

 Frank Hileman19 окт. 2012 г., 01:28
В двоичных файлах .net есть символы (если они не скрыты), и вы можете видеть имена параметров. Я нашел несколько ошибок для Microsoft таким образом. Например,connect.microsoft.com/VisualStudio/feedback/details/577372/... , Дело в том, что вы не охотитесь за иглой. Вы идете прямо к узкому месту.
 Kushan22 окт. 2012 г., 10:32
Спасибо, Фрэнк, чтоНесколько полезно. К сожалению, я думаю, что это может быть не в моих силах, так как яМы никогда не отлаживали что-либо без удобного исходного кода, так что почти наверняка это было бы почти бесполезно. Я'Попробую, хотя яЯ не совсем уверен, как этоПоможет ли я хоть как-то найти проблему? Из того, что вымы сказали, Microsoft неЯ очень заинтересован в том, чтобы все исправить.
 Erik Funkenbusch18 окт. 2012 г., 19:16
Visual Studio использует много потоков, и я нене думаю, что тамs любой .pdb 'доступно, что означает, что выв основном охотимся на иголку в стоге сена с таким подходом.

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

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

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

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

Этому компьютеру меньше 2 недель, и яя уверен, что этоЧистый от вредоносных программ.

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

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

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

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

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

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

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

Ваш ответ на вопрос