Почему Visual Studio 2005 такой медленный? - PullRequest
3 голосов
/ 04 сентября 2008

Медленно загружается что-либо, кроме небольшого проекта. Это медленно, чтобы выйти; иногда это может занять несколько минут. Это может быть медленно, чтобы открыть новые файлы. Раньше функция записи макросов была полезной. Теперь он так медленно запускается, что почти всегда быстрее сделать это вручную!


Дополнительная информация будет полезна. Насколько велики ваши решения? На какой ты платформе. Какие сторонние плагины вы используете? Что еще работает на вашем компьютере?

3,2 ГГц P4 Hyperthreaded, 2 ГБ оперативной памяти. Запуск Outlook, Perforce, IE7, просмотр каталогов. Обычно 1-3 экземпляра VS работают. Это намного медленнее, чем VC6, скажем. Кажется, что загрузка проектов и закрытие занимает много времени. Меня интересует, знают ли люди причины, по которым это происходит, из-за того, как написано VS. Использует ли он внутри .net, а GC замедляет его?

Ответы [ 13 ]

4 голосов
/ 04 сентября 2008

Одной из главных причин медлительности Visual Studio 2005 является Intellisense. Это поднималось на форумах MSDN снова и снова и снова. Я часто сталкиваюсь с тем, что Intellisense работает практически непрерывно, чтобы «переиндексировать» символы (или как вы это называете). Но разработчики в Microsoft не были глухи к жалобам, и некоторые исходящие люди придумали некоторые обходные пути, которые помогли мне и могли бы помочь вам:

Проверьте эту ссылку, чтобы лучше понять Intellisense:

Intellisense Info

Затем перейдите по этой ссылке, чтобы найти макросы, с которыми у меня был большой успех:

Макросы Intellisense

С этими макросами вы можете отключить intellisense (без переименования каких-либо библиотек DLL), перезапустить его, удалить файл ncb (что вы можете сделать вручную, но это удобно), и он может дать вам статус Intellisense.

2 голосов
/ 04 сентября 2008

Одной из главных причин медлительности Visual Studio 2005 является Intellisense. Это поднималось на форумах MSDN снова и снова и снова. Я часто сталкиваюсь с тем, что Intellisense работает практически непрерывно, чтобы переиндексировать символы [...]

Я согласен. Я использую Visual Assist. Это намного лучше. Нет реального способа выключить «Intellisense». Единственный способ, который я нашел, - переименовать DLL, чтобы при перезапуске VS она не была найдена. Это работает и делает VS быстрее.

2 голосов
/ 04 сентября 2008

Возможно, у вас есть плагин, который плохо себя ведет. Попробуйте ключ safemode , чтобы увидеть, улучшает ли это производительность

1 голос
/ 04 ноября 2008

Я вижу смешанные результаты с более быстрыми машинами. Конечно, более быстрая машина скрывает низкое качество производительности vs2005, но не все.

Просто возьмите обязательную программу на C / C ++ "hello world", просто скомпилируйте ее, (CL / c helloword.cpp),

#include <stdio.h>
#include <windows.h>

int main(char argc, char *argv[])
{
   printf("Hello World\n");
   return 0;
}

Я вижу 1 секундный компилятор под Vc6 и 6 секундный компилятор под VS2005.

Используя DEPENDS для профилирования двух, я вижу 3 области, где происходят 5-секундные задержки и различное время:

  ~2.5 secs with ADVAPI32.DLL, CryptGetHashParam()
  ~1.5 secs with OLE2.DLL, StringFromGUID2()
  ~1.0 secs with C2.DLL, _AbortCompilerPass()  

Опять же, это просто компиляция, а не ссылка. Исполняемые файлы / библиотеки компиляторов VC8 + ссылаются на подсистемы, такие как crypto API, Registry по какой-то прозрачной причине и добавляют огромные накладные расходы к прямым и чистым компиляциям.

Хотя более быстрая машина может скрывать некоторые замедления скрытия, можно только задаться вопросом, может ли Microsoft оптимизировать компилятор, предлагая варианты, которые отключают ненужные ссылки на служебные данные. Я понимаю, что лучший компилятор идет с некоторыми накладными расходами, но я вижу, что снижение времени компиляции на 300-500% - это ужасно.

Гектор Сантос, технический директор Santronics Software

1 голос
/ 04 сентября 2008

вот вам проблема:

3,2 ГГц P4 Hyperthreaded, 2 ГБ ОЗУ

Hypertheaded означает, что "на самом деле не имеет двух процессоров, но он имитирует". Если у вас есть процесс с одним запущенным потоком, вы получаете плохую производительность. Это была хорошая краткосрочная мера, но по сравнению с двумя реальными процессорами, это медленный взлом.

Я не думаю, что это проблема вообще. Машина обладает достаточно высокими техническими характеристиками, чтобы быть профессиональной машиной для разработки C ++ для больших проектов. Я могу запустить Eclipse (который является Java, который требует много памяти и медленнее, чем собственный код), и это все еще намного быстрее, чем VS 2005.

Я удвоил объем оперативной памяти с 1 до 2 ГБ. Это очень помогает при связывании больших приложений. Мы также используем Incredibuild для ускорения компиляции. Но это приложение VS медленное.

И если вы думаете, что я сварливый анти-MS фанат, спросите себя, почему люди не покупают Vista! :)

1 голос
/ 04 сентября 2008

Я склонен согласиться с тем, что VS является тяжеловесом. Еще в тот день я программировал в DOS с помощью текстового редактора Boxer и make-файлов. У Boxer не было функций интеллигенции и рефакторинга, но он лучше работал в отделе редактирования текста, имел хорошую подсветку синтаксиса и запуск / закрытие были мгновенными, даже на 486. ... это были дни.

Я бы сказал, что было бы неплохо настроить VS, чтобы удалить все накладные расходы, которые вы никогда не собираетесь использовать, но я не вижу, чтобы это происходило.

0 голосов
/ 02 января 2014

Измените свою платформу решений на «Любой ЦП», который указан в верхней части Visual Studio, тогда скорость сборки вашей программы будет определенно увеличена.

0 голосов
/ 24 мая 2010

Я заметил выше, вы упомянули, что вы тоже используете Perforcet. Если проекты не загружаются быстрее, я готов поспорить, что некоторая задержка, которую вы видите, связана с работой во время загрузки. Последняя версия перформанса тоже выглядит намного медленнее.

0 голосов
/ 08 октября 2009

VS 2005 медленнее, чем VS 6, потому что он не так хорошо оптимизирован по скорости. Разработчики VS 6 имели более медленные машины, чем разработчики VS 2005. Тогда они сделали это «достаточно быстрым». На современном компьютере VS теперь «приятно быстр», тогда как VS 2005 достаточно быстр.

Что меня раздражает, так это то, что они решили отказаться от VS 6 и начать все заново для VS 2005, когда VS 6 была отличным программным обеспечением, которое просто нуждалось в обновлении.

0 голосов
/ 04 сентября 2008

Не могли бы вы запланировать некоторые операции и опубликовать их, чтобы мы поняли, что вы подразумеваете под "медленными"? На моей машине я бы не назвал VS 2005 медленным, но если сравнить его с блокнотом или моим веб-браузером, то он кажется медленным. Вот некоторые вещи, которые могут помочь людям понять, что происходит:

  • Отключите все функции, которые могут повлиять на время загрузки. Это включает в себя удаление всех надстроек и проверку того, что VS не настроен для автоматического открытия проекта.
  • Перезагрузите компьютер.
  • Время, в течение которого запускается VS 2005, с момента нажатия значка до запуска программы.
  • Создайте программу, которую вы готовы опубликовать здесь, которая, кажется, компилируется медленно (это может быть невозможно в зависимости от того, что требуется для медленной компиляции); опубликуйте программу и сколько времени потребуется вашему компьютеру для ее сборки.
  • Знаете ли вы кого-нибудь еще с такой же машиной, на которой установлена ​​VS 2005? Это кажется медленнее или быстрее, чем у вас?

Я верю, что лорд Кельвин сказал лучшее, что можно сказать о таких ситуациях:

Когда вы можете измерить то, о чем говорите, и выразить это в цифрах, вы кое-что знаете об этом; но когда вы не можете измерить это, когда вы не можете выразить это в цифрах, ваши знания об этом скудны и неудовлетворительны; это может быть началом знания, но вы едва ли в своих мыслях продвинули его до уровня науки.

Пока вы не дадите нам несколько измерений, мы не сможем сказать, действительно ли ваша машина работает медленно или вы ожидаете от своей машины большего, чем она может дать. Ваш HT-процессор может быть проблемой; У меня примерно одинаковые машины на работе и дома, но моя двухъядерная рабочая машина вращается вокруг моей одноядерной домашней машины, когда дело доходит до запуска VS.

...