Я за последний десяток лет уже несколько раз поднимал одни и те же вопросы — как в своих темах, так и в чужих, но воз и ныне там. Кто-нибудь видел (или делал сам) более-менее объективное сравнение отзывчивости/быстродействия интерфейса и стабильности работы разных версий MS VS (2008, 2010, 2012, 2013, 2015, 2017) на одном и том же (или хотя бы близком) железе? Последнюю 2019 и более ранние можно не учитывать.
Сколько ни пытался найти в сети содержательные, объективные отзывы — бесполезно. Почти все предпочитают оперировать субъективными категориями — "тормозит", "лагает", "супертормоз", "шустрая", "быстрая", "летает" и т.п.
Вдобавок большинство меняет версии студии вместе со сменой железа и/или версии винды, поэтому более тормозная (объективно) студия на более быстром железе будет казаться такой же, как и прежняя, а та, что не намного тормознее, при переходе с Win7 на Win10 может показаться супертормозом.
Поэтому главный вопрос: наблюдал ли кто-нибудь на одном железе и в одной системе, чтобы более новая студия стала отзывчивее, уменьшились задержки при открывании меню/окон, срабатывании подсветки синтаксиса, автодополнений IntelliSense и т.п.? Они с ростом версии они становятся только медленнее, и лишь железо способно это компенсировать?
Сразу подчеркну, что в этом вопросе меня совершенно не интересуют скорость сборки, набор и функциональность языков, количество поддерживаемых фич и подобное. Интересует только скорость и стабильность работы интерфейса, и ничто иное. Принцип простой: компилятор можно поменять, библиотеку добавить, без части фич обойтись, а тормоза интерфейса придется терпеть часами ежедевно.
Заняться сравнением самому проблематично, поскольку ставить в параллель пять-шесть версий и спокойно их сравнить — это надо все бросить минимум на несколько дней. Поэтому ищу тех, кто уже пробовал, или хоть где-то видел толковые сравнения.
Да, на всякий случай добавлю, что "мгновенная реакция интерфейса" — это примерно до 0.2 с от клика до полной отрисовки элемента UI. Полсекунды — это очень ощутимая задержка, совершенно недопустимая для любого профессионального UI, если только она не связана с объективными причинами (например, работа через медленный канал связи, загрузка большого объема данных и подобное).
Кому сложно оценивать интервалы порядка 0.2 с — попробуйте, глядя на секундную стрелку часов, как можно быстрее кликать мышкой, или просто стучать пальцем по столу. Подсчитайте, сколько ударов сделали за 5-10 с, и определите интервал — это будет где-нибудь от 0.1 до 0.3 с.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Почти все предпочитают оперировать субъективными категориями — "тормозит", "лагает", "супертормоз", "шустрая", "быстрая", "летает" и т.п.
Потому что никто этой "абстрактной задачей" заниматься не собирается. Как ты себе представляешь "объективное сравнение"? Снимать студию на камеру в 1000к/с? Закидывать проект терабайтными исходниками? НЕТ его — такого бенчмарка.
ЕМ>Поэтому главный вопрос: наблюдал ли кто-нибудь на одном железе и в одной системе, чтобы более новая студия стала отзывчивее
Могу со 100% уверенностью сказать, что переход на "анализатор языка в отдельном процессе" точно сделал студию тормознее. Настолько, что когда я меняю код, через 1-2 СЕКУНДЫ(!) появляется подсветка. Это намёк кое-каким Владам, что это тупейшая и тормознутейшая затея — выносить анализатор из сборки IDE.
Но самое главное: клоуны из MS — ты их хоть носом вози по бенчмаркам, просто разведут руками "система стала сложной"! НИЧЕГО эти руко***опые делать не будут, потому что это "не приносит прибыль"! О как! Кому нужна среда — будет давиться тем, что есть (советский общепит), а маргинальщики понаставят всяких VS Code и будут кодить без половины фич. Да-да, мелкософт катится в тарары.
PS
А тот Mystic Artifact, что по привычке с хабра бздит из кустов, но ничего не аргументирует, может отдыхать — моё мнение неизменно.
Здравствуйте, Kolesiki, Вы писали:
K>Как ты себе представляешь "объективное сравнение"? Снимать студию на камеру в 1000к/с? Закидывать проект терабайтными исходниками?
Про исходники я уже подчеркивал — работа средств сборки не интересует. А скорость интерфейса с достаточной точностью можно оценить методом клика/стука, который я описал в исходном сообщении. Это всего несколько минут, зато это объективная информация, которая будет полезна массам. Что толку, когда народ ноет в сети, что "студия тормозит", "студия лагает", "новая студия стала медленнее", если это не сопровождается хоть какими-то объективными измерениями? Такое впечатление, что разработчики софта в массе ничуть не умнее блоггеров, хотя пытаются казаться умными.
K>переход на "анализатор языка в отдельном процессе" точно сделал студию тормознее.
Это в каких версиях?
K>Настолько, что когда я меняю код, через 1-2 СЕКУНДЫ(!) появляется подсветка.
Мда. Это зависит от объема/сложности кода, от количества/объема #include и т.п.?
K>тупейшая и тормознутейшая затея — выносить анализатор из сборки IDE.
Да не, сама по себе идея вполне годная, если реализована прямыми руками. Общая память, нормальная синхронизация — и все будет работать с той же скоростью, что и в одном процессе, с точностью до микросекунд на переключение. А вот если при каждом вызове того кода вызывается пара десятков промежуточных уровней, и создается несколько сотен временных объектов в динамическом пуле — тормоза будут в любом случае.
K>Но самое главное: клоуны из MS — ты их хоть носом вози по бенчмаркам, просто разведут руками "система стала сложной"! НИЧЕГО эти руко***опые делать не будут, потому что это "не приносит прибыль"! О как!
Да и хрен бы с ними. Сейчас вопрос стоит предельно тупо: какую версию говна выбрать для перехода с VS2008, чтобы не психовать каждую минуту. Если и придется психовать несколько раз в день — это всяко менее вредно для здоровья. В свое время я поменял VS6 сразу на 2005 — поворчал, конечно, но очень немного, ибо ежеминутно она не тормозила, а с периодическими задержками и локальными глюками нетрудно смириться. 2005 на 2008 тоже поменялась без проблем, а вот дальше пока не получается. Сейчас пытаюсь поставить в виртуалке 2015-3 без SDK и прочих фич, но ее инсталлятор постонно ругается на "отсутствующие/испорченные" файлы, хотя все на месте, и в нужном виде. Похоже, они его тестировали только на дефолтной/полной установке.
Re[3]: Сравнение отзывчивости и стабильности UI разных версий M
Я 2008-ую студию уже и не помню почти. В отношении C++ — мне кажется, она не слишком лучше навороченного "блокнота", но это не точно.
2017-ая с плюсами мне понравилась — она вполне справляется с огромными проектами (типа хрома). Все парсит в фоне, подсветка, интеллисенс — работает, а не предлагает все подряд как в 2008. Но тут есть и ложка дёгтя: вот буквально на днях надо было добавить 2 строчки кода, и одним неосторожным взмахом мышкой повисшей на именем метода — она повисла. Мне вообще кажется, что с тултипами там чего-то не так. Но это не постоянно так происходит. Отладка — однозначно стала лучше. Но, это не значит, что она не крешнется, увы.
Тем не менее, если брать солюшены более осмысленных размеров — полагаю и стабильность вырастрет. (Но это не точно.)
В 2017/2019/C# — в основном страдает интеграция с .net core, казусы случаются. 2019 — переименовал файл в проекте, и в редактор этого файла забывает настройки .editorconfig/форматирования, например, пока не переоткроешь файл.
Ну и тем более там нет проблемы с подсветкой и 1-2 неблокируемой секундной задержкой на эту тему: задержка безусловно есть и ощутима, но это точно не зависит от размещения языкового сервиса. За эту одну-две секунды оно вообще-то делает полный семантический анализ, давая информацию и о подсветке так и сообщения диагностики (ошибки), и опять таки зависит от размера солюшена.
Объективно:
Я бы поставил 2019 на пробу и поработал бы со своим проектом. Только так ты правильно получишь свои собственные субьективные ощущения.
Re[4]: Сравнение отзывчивости и стабильности UI разных версий M
Здравствуйте, Mystic Artifact, Вы писали:
MA>Я 2008-ую студию уже и не помню почти. В отношении C++ — мне кажется, она не слишком лучше навороченного "блокнота", но это не точно.
Я, честно говоря, особо не пользуюсь даже Class View, а уж автоматическим рефакторингом — и вовсе. Не люблю, когда мой код переформатируется, да и проекты у меня совсем небольшие.
MA>2017-ая с плюсами мне понравилась
15.0 или 15.9?
MA>Тем не менее, если брать солюшены более осмысленных размеров — полагаю и стабильность вырастрет. (Но это не точно.)
У Вас все огромных размеров?
MA>Ну и тем более там нет проблемы с подсветкой и 1-2 неблокируемой секундной задержкой на эту тему: задержка безусловно есть и ощутима, но это точно не зависит от размещения языкового сервиса. За эту одну-две секунды оно вообще-то делает полный семантический анализ, давая информацию и о подсветке так и сообщения диагностики (ошибки), и опять таки зависит от размера солюшена.
А каковы задержки на небольших (в пределах нескольких мегабайт исходников)?
MA>Я бы поставил 2019 на пробу и поработал бы со своим проектом. Только так ты правильно получишь свои собственные субьективные ощущения.
Мне жалко времени пробовать их все. Они ставятся-то по часу, и даже конфигурацией толком не дают управлять, как прежние.
Re[5]: Сравнение отзывчивости и стабильности UI разных версий M
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Я, честно говоря, особо не пользуюсь даже Class View, а уж автоматическим рефакторингом — и вовсе. Не люблю, когда мой код переформатируется, да и проекты у меня совсем небольшие.
Да я тоже. Я больше имею ввиду именно интеллисенс.
MA>>2017-ая с плюсами мне понравилась ЕМ>15.0 или 15.9?
Сейчас уже не скажу, — на тот момент была последней, но сейчас — это разумеется уже далеко не последняя.
MA>>Тем не менее, если брать солюшены более осмысленных размеров — полагаю и стабильность вырастрет. (Но это не точно.) ЕМ>У Вас все огромных размеров?
Это не у меня. Мой вклад минимален, на уровне правильной интеграции, дописать пару классов, подправить. Но, я могу сегодня в V8 лазить, завтра разбираться с порядком инициализации, а послезавтра с сетью или почему не грузится их замечательный сэндбокс в anycpu. Поэтому, это просто много кода и не моего. Самый лучший помощник, в случае хромого кода — это cs.chromium.org + документация. После чего, студия или "блокнот", откровенно говоря не принципиально. Но мне в студии чуточку приятнее, когда она работает. Так и последний раз случилось — незнаю даже зачем ее грузил. Интеллисенс мне помогает тем, что я могу не заметить чего-то, например наличия подходящего конструктора. Бывает не все видно за горами комментариев в хидерах. Компиляция в тоже время всегда происходит за пределами студии. Как-то так.
За пределами этого контекста в последние годы с C++ не сталкиваюсь.
На 2015 помоему писал небольшой враппер вокруг библиотеки кодирования видео (webm, библиотека тоже хромая), для нормального его потребления из C# — ну т.е. это работой на C++ не назовешь, но тоже было приятно в студийном редакторе. Но 2015, насколько я помню, страдала тем, что интеллисенс периодически тупит и упорно не подсказывает.
Я чего давлю на интеллисенс — т.к. я в основном работаю с C# — если эта часть есть но работает эпизодически — это подсознательно вызывает дискомфорт, т.к. в C# с 2003-ей студии он есть и стабильно работает... привычка.
ЕМ>А каковы задержки на небольших (в пределах нескольких мегабайт исходников)?
Если что, то я говорил параграфом выше про C#. Все упирается в CPU и IO. Работаю на 6 летнем конфиге i7-4770, 32GB RAM (в основном пустует более половины) + бюджетные SSD как для ОС, так и для сорсов.
В контексте C++ данный экспириенс не имеет большого смысла, да и парсить нужно там в разы больше.
MA>>Я бы поставил 2019 на пробу и поработал бы со своим проектом. Только так ты правильно получишь свои собственные субьективные ощущения. ЕМ>Мне жалко времени пробовать их все. Они ставятся-то по часу, и даже конфигурацией толком не дают управлять, как прежние.
Так я и предлагаю начинать с последней. Ну вот солюшн с 2К C++ проектами в 2017/2019 грузится или бодрее или не приводит к залипалову.
Re[3]: Сравнение отзывчивости и стабильности UI разных версий M
ЕМ>Заняться сравнением самому проблематично, поскольку ставить в параллель пять-шесть версий и спокойно их сравнить — это надо все бросить минимум на несколько дней. ЕМ>А скорость интерфейса с достаточной точностью можно оценить методом клика/стука, который я описал в исходном сообщении. Это всего несколько минут
Re[6]: Сравнение отзывчивости и стабильности UI разных версий M
Здравствуйте, Mystic Artifact, Вы писали:
MA>Но 2015, насколько я помню, страдала тем, что интеллисенс периодически тупит и упорно не подсказывает.
Вот и в 2005/2008 с C++ это происходит регулярно, по мере засирания .ncb. Удалишь его — снова работает несколько часов или дней. А поля структур, локально определенных внутри функций, не показывает вообще. В 2010 мне показалось, что IntelliSense стал получше — выходит, таки временно.
MA>Я чего давлю на интеллисенс — т.к. я в основном работаю с C# — если эта часть есть но работает эпизодически — это подсознательно вызывает дискомфорт
А меня это сознательно бесит. И удивляет, как они сами работают в студиях с таким нестабильным поведением.
Re[7]: Сравнение отзывчивости и стабильности UI разных версий M
Здравствуйте, Евгений Музыченко, Вы писали:
MA>>Но 2015, насколько я помню, страдала тем, что интеллисенс периодически тупит и упорно не подсказывает. ЕМ>Вот и в 2005/2008 с C++ это происходит регулярно, по мере засирания .ncb. Удалишь его — снова работает несколько часов или дней. А поля структур, локально определенных внутри функций, не показывает вообще. В 2010 мне показалось, что IntelliSense стал получше — выходит, таки временно.
Проблема с ними была в том, что они вываливали в интеллисенс какой-то список дефайнов о существовании которых нормальный разработчик даже знать то не должен, а то что необходимо и должно быть доступно — каким-то магическим образом он не подсказывал. А залипы/затупы можно было словить просто после неумелого редактирования хидера. Мне так казалось.
MA>>Я чего давлю на интеллисенс — т.к. я в основном работаю с C# — если эта часть есть но работает эпизодически — это подсознательно вызывает дискомфорт ЕМ>А меня это сознательно бесит. И удивляет, как они сами работают в студиях с таким нестабильным поведением.
Тем не менее, в 2017+ интеллисенс в С++ вышел на новый качественный уровень (относительно всех предыдущих версий). Возможно я путаю, и это произошло в 2015-ой студии.
А о проблемах наблюдаемых мною: Я думаю, что мой кейс использования — не является ни нормальным / оптимизированным ни со стороны студии, ни является продуктивным в разрабтоке — одновременно иметь под рукой все-все проекты просто нет необходимости. Они у меня оказываются там, просто потому, что по дефолту генериться такой солюшн и мне проще его открыть, чем ковыряться в генерации и/или править солюшн.
Кстати, в каталоге .vs у меня к примеру там собралось около 1.2Гб (Browse.VC.db + Solution.VC.db, и да — теперь это просто sqlite3 БД, а не чо у них там было непонятное).
И так же рядом от 2019-ой студии есть. Может стопор я словил как раз в 2019-ой.
Re[8]: Сравнение отзывчивости и стабильности UI разных версий M
Здравствуйте, Mystic Artifact, Вы писали:
MA>Тем не менее, в 2017+ интеллисенс в С++ вышел на новый качественный уровень (относительно всех предыдущих версий). Возможно я путаю, и это произошло в 2015-ой студии.
А что конкретно проверить, чтобы увидеть, в какой версии он поменялся? Или это просто о стабильности работы?
Re[9]: Сравнение отзывчивости и стабильности UI разных версий M
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>А что конкретно проверить, чтобы увидеть, в какой версии он поменялся? Или это просто о стабильности работы?
Опять же, если не путаю, то внешне изменилась расцветка — появились отдельные цвета для типов, переменных, дефайнов. Напоминать стало плагин от томатов в VC6.
Re[10]: Сравнение отзывчивости и стабильности UI разных версий M
Здравствуйте, Mystic Artifact, Вы писали:
MA> если не путаю, то внешне изменилась расцветка — появились отдельные цвета для типов, переменных, дефайнов.
Это таки не IntelliSense, а Syntax Highlighting. IntelliSense занимается более глубоким анализом определений.
Re[11]: Сравнение отзывчивости и стабильности UI разных верс
Здравствуйте, Евгений Музыченко, Вы писали:
MA>> если не путаю, то внешне изменилась расцветка — появились отдельные цвета для типов, переменных, дефайнов. ЕМ>Это таки не IntelliSense, а Syntax Highlighting. IntelliSense занимается более глубоким анализом определений.
Ты спрашивал как их быстро отличить. Вот у них в это время изменилась и раскраска тоже. Раскраска у них собственно сейчас использует результаты этого самого глубокого анализа определений.
UPD: Что в принципе совершенно не мешает использовать и традиционные методы раскраски параллельно, до тех пор пока результатов анализа нет.
В общем я щас ещё раз загрузил проект.
Виснет у меня таки 2019 студия. С 2017 всё впорядке. Но солюшн/проекты сгенерированы под 2017-ую, поэтому подозреваю это косяк проектов/интеграции 2019 с 2017-ми проектами.
Открыл рандомный файл. Под 2017-ой — висяков нет. Пока она неотпарсит определения — она не особо что-то предлагает вообще (окно интеллисенс не появляется). Но как только это готово — всё шустро, парсит полностью в фоне — именно каких-то залипов я не вижу.
PS: И подсвечивают они отдельно дефайны и имена типов (классы), по крайней мере в дефолте. С именами переменных это я с шарпом уже путаю.
Re[12]: Сравнение отзывчивости и стабильности UI разных версий M
Здравствуйте, Mystic Artifact, Вы писали:
MA>Виснет у меня таки 2019 студия.
Ну вот, а мне советовали начинать с нее. Я сейчас кручу 2013, потом попробую 2015/2017.
MA>Но солюшн/проекты сгенерированы под 2017-ую, поэтому подозреваю это косяк проектов/интеграции 2019 с 2017-ми проектами.
Разве это оправдывает зависания?
Re[13]: Сравнение отзывчивости и стабильности UI разных верс
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Разве это оправдывает зависания?
Можно на ты обращаться... ну или в единственном числе.
Нет, не оправдывает. Но в солюшене видно в скобочках, что проект инородный (пишет название версии студии). Это просто мое предположение, что может зависит от этого.
Имеет смысл начинать с последней, потому, что шансов, что она лучше больше. Тем более, с новым, ускоренным жизненным циклом — апдейты выходят и регулярно и быстрее, и уже несколько вышло, если бы был явной косяк, наверное пофиксили бы (ну, хочется надеяться ).
Здравствуйте, Mystic Artifact, Вы писали:
MA>Имеет смысл начинать с последней, потому, что шансов, что она лучше больше. Тем более, с новым, ускоренным жизненным циклом — апдейты выходят и регулярно и быстрее, и уже несколько вышло, если бы был явной косяк, наверное пофиксили бы (ну, хочется надеяться ).
Там действительно что-то поменялось за последние 10-15 лет? А то я сегодня покрутил 2013 Update 5, и за несколько часов словил столько глюков (в том числе явных — вроде оставления фантомного изображения диалога поверх текста после закрытия диалога).
Сейчас пытаюсь поставить 2015 Update 3, сперва — из смонтированного ISO, потом — из уже распакованного. В обоих случаях оно почти с самого начала начинает жаловаться на "package missed or damaged", и не желает брать MSI ни из дистрибутива, ни даже из инета.
С 2019 что-то радикально изменилось?
Re[15]: Сравнение отзывчивости и стабильности UI разных верс
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>С 2019 что-то радикально изменилось?
Для 2017/2019 (для 2015 не знаю, не думаю) инсталлятор единый и унифицированным UI. Ставлюсь в последнее время только по сети. Если нужен установочный образ, то делается вроде тем же скачиваемым vs_setup, но он тогда качает совсем ненужный хлам, навроде андроед сдк, юнити там чего-то там. Как то и это делается, но реально, быстрее выходит не заморачиваться. Там вроде и компоненты можно с коммандной строки указать, но опять таки, не нужно оно. Пробежаться по списку быстрее.
Глюки UI, навроде неперерисованных областей — я уже и припомнить не могу. Да и в 2013 не помню такого.
На виртуалке пробуешь?
Re: Сравнение отзывчивости и стабильности UI разных версий MS VS
Здравствуйте, Mystic Artifact, Вы писали:
MA>Для 2017/2019 (для 2015 не знаю, не думаю) инсталлятор единый и унифицированным UI.
На вид он и в 2013-2015 похожий. Но в 2015 он еще позволяет выбрать компоненты из дерева, как оно всегда было. А инсталлятор 2013 предлагает в маленьком окошке семь галочек — Blend, MFC, SQL и т.п., и это весь выбор. Если снять все галки — ставит на девять гигов. Какой тупой или извращенный мозг нужно иметь, чтобы так сделать инсталлятор профессионального продукта, который всю жизнь ставился иначе? Хорошо, что потом они одумались и вернули опции.
MA>Если нужен установочный образ, то делается вроде тем же скачиваемым vs_setup, но он тогда качает совсем ненужный хлам, навроде андроед сдк, юнити там чего-то там.
Это можно конфигурировать, я уже стянул нужные компоненты в оффлайн. Online-only установщики мне не подходят категорически, поскольку при слете или глюках софта я должен иметь возможность его переустановить независимо от наличия/скорости/объема интернета.
MA> Глюки UI, навроде неперерисованных областей — я уже и припомнить не могу. Да и в 2013 не помню такого. MA> На виртуалке пробуешь?
Да, но виртуалка нормальная, все остальное там работает прекрасно, таких глюков просто не должно быть.