Для получения триального ключа
заполните форму ниже
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, а вообще всем. Используйте приложения, которые вы разрабатываете. Иначе сразу чувствуется, что вы не доверяете своей собственной системе. Это вылезает из разных щелей. И это очень негативно сказывается на отношении к продукту.

Последние статьи:

Опрос:

Популярные статьи по теме
Как Apple и другие крупные компании настиг программный баг

Дата: 09 Ноя 2022

Автор: Ульяна Гришина

Сегодня мы отобрали свежие случаи программных ошибок, чтобы вы могли немного отвлечься и, возможно, узнать что-то новенькое. Если вам интересно узнать, как программисту удалось сломать Интернет по вс…
Единороги компании PVS-Studio

Дата: 30 Авг 2022

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

Скорее всего вы перешли на эту статью, заинтересовавшись одним из наших рисунков единорогов. Приятно видеть ваш интерес. Сейчас мы расскажем, почему рисуем этих единорогов, что они означают и чем воо…
Обрабатывать ли в PVS-Studio вывод других инструментов?

Дата: 26 Май 2022

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

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

Дата: 24 Май 2022

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

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

Дата: 04 Май 2022

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

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

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

Следующие комментарии
Unicorn with delicious cookie
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо