Для получения триального ключа
заполните форму ниже
Team License (базовая версия)
Enterprise License (расширенная версия)
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

Бесплатная лицензия PVS-Studio для специалистов Microsoft MVP
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

Мне интересно попробовать плагин на:
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте папку
Spam/Junk и нажмите на письме кнопку "Не спам".
Так Вы не пропустите ответы от нашей команды.

>
>
Интересно, а в какой среде работают раз…

Интересно, а в какой среде работают разработчики Microsoft? Linux?

27 Ноя 2012

Насчет Linux я конечно шучу. Тем не менее, меня интересует этот вопрос. Я понимаю, что системы, над которыми работают в Microsoft, большие и сложные. Я отлично представляю, как баг может быть обнаружен только через некоторое время пользователями. Но мне не понятно, как можно не замечать явных ляпов в инструментах, которыми сами разработчики должны пользоваться регулярно.

В начале, немного о классических ошибках. С ними всё понятно. Их легко не заметить разработчикам, так как они не являются конечными пользователями. Хорошим примером является ошибка в одной из версий Microsoft Visio. Кажется, это была версия 2010 года. Если вы начинали вводить текст в блок из Basic Flowchart на русском языке, то он вводился задом наперед. Это я понимаю. Кто-то напутал и решил, что в русском языке пишут справа налево. Русский и арабский – это одно и тоже, или очень похоже. Среди тестеров русских людей не нашлось, и ошибка ушла в release версию. Вот эту ситуацию я понимаю.

А вот то, что происходит в среде Visual Studio, не поддаётся логическому объяснению. Они совсем не пользуются этой средой? Я подозреваю, что для сборки они используют сложные билд-системы. Но неужели никто во всем Microsoft не использует саму Visual Studio для работы? Если использует, то мне не понятно, как можно не замечать явных промашек.

Притчей во языцех, является функция поиска в среде Visual Studio 2010 [1, 2, 3, ...]. Кто использовал Visual Studio 2010, тот думаю, сразу поймёт о чём я. Неужели никто из разработчиков Visual Studio сам не нажимал Ctrl-F в этой среде?

С выходом Windows 8 разработчикам подкинули очередной глюкодром. На каких программах он будет проявляться, я не знаю. Я могу рассказать, как это сказывается на PVS-Studio. У нас он проявляется на связке Windows Defender и компилятора Visual C++. Мой коллега написал техническую заметку про это. Однако я перескажу её суть более просто и эмоционально.

Итак, жила была в Windows система Windows Defender. В Windows 8 эта система стала представлять собой своего рода бесплатный антивирус. Всё замечательно. Однако теперь PVS-Studio стал работать в несколько раз медленнее.

Какая связь? Связь тонкая и неочевидная. Анализатор PVS-Studio запускает для препроцессирования компилятор Visual C++ (cl.exe). Так вот, теперь препроцессирование выполняется только на одном ядре, если включен Windows Defender. Чудеса и магия.

Читатель наверняка скажет: "Вы наверное процессы неправильно создаёте. Проверьте Affinity Mask.". Нет, с эти всё в порядке. Проблема в связке Windows Defender с Visual C++.

При этом где-то внутри Windows Defender есть механизм из пластилина и бумаги. Он помогает Visual Studio работать на первый взгляд правильно. При параллельной компиляции используются все ядра процессора. Однако стоит в настройках прописать ключики /P и /c, как всё ломается. Нажимаем F7 в Visual Studio и все процессы CL.EXE начинают запускаться на одном ядре. Забавно наблюдать, как на 8-ядерном процессоре все процессы ютятся на одном ядре, отъедая скромные 12%. Остальные 7 ядер в это время пьют чай.

Стоит отключить Windows Defender и всё начинает работаться нормально. Уверен, что от Windows Defender скоро пострадают и другие программы.

Вернемся к PVS-Studio. Ему необходимо запускать CL.EXE как раз для препроцессирования файлов. В результате всё это делается на одном ядре. Прискорбная ситуация. Причем явное задание Affinity Mask ничем не помогает. Windows Defender крепко держит систему в своих руках.

И вот тут у меня вновь возникает вопрос! А что, в Microsoft программисты работают с отключенным Windows Defender? Неужели никто нигде ни разу не заметил странностей? Или никто не использует Visual Studio?

С одной стороны всё это кажется мелочами и обыкновенными суровыми буднями программистов. Мы много чего уже повидали странного в сложных системах. Но всё равно ситуация меня расстраивает. Как устранить замедление, не отключая Windows Defender не понятно. Интернет пока молчит.

Первопричина всего это в том, что при разработке используется не та среда, которая предлагается пользователям. И ещё вопрос. Если, например, внутри Microsoft действительно отключают Windows Defender, то нужна ли такая полезная система нам?

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

Популярные статьи по теме
Обрабатывать ли в PVS-Studio вывод других инструментов?

Дата: 26 Май 2022

Автор: Андрей Карпов

Анализатор PVS-Studio умеет "схлопывать" повторяющиеся предупреждения. Предоставляет возможность задать baseline, что позволяет легко внедрять статический анализ в legacy-проекты. Стоит ли предостави…
15000 ошибок в открытых проектах

Дата: 24 Май 2022

Автор: Андрей Карпов

Количество багов в нашей коллекции перевалило за отметку 15000. Именно такое количество ошибок обнаружила команда PVS-Studio в различных открытых проектах. Особенно интересно, что это всего лишь побо…
Комментарии в коде как вид искусства

Дата: 04 Май 2022

Автор: Сергей Хренов

Приветствую всех программистов, а также сочувствующих. Кто из нас хотя бы раз в жизни не оставлял комментарии в коде? Был ли это ваш код, а может, чужой? Что за комментарии вы написали: полезные или …
Visual Studio 2022 стильно и свежо. История о её поддержке в PVS-Studio

Дата: 15 Фев 2022

Автор: Николай Миронов

Кажется, анонс Visual Studio 2022 был только недавно, и вот она уже вышла. Это означало ровно одно – поддержать данную IDE нужно в ближайшем релизе PVS-Studio. О том, с какими сложностями пришлось ст…
Лучшие срабатывания статического анализатора

Дата: 29 Окт 2021

Автор: Максим Звягинцев

У всех, кто запускал статический анализатор в первый раз на большом проекте, был небольшой шок по поводу сотен, тысяч или даже десятков тысяч предупреждений. Как-то грустно становится после такого. Т…

Комментарии (0)

Следующие комментарии
Этот сайт использует куки и другие технологии, чтобы предоставить вам более персонализированный опыт. Продолжая просмотр страниц нашего веб-сайта, вы принимаете условия использования этих файлов. Если вы не хотите, чтобы ваши данные обрабатывались, пожалуйста, покиньте данный сайт. Подробнее →
Принять