metrica
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
close form

Заполните форму в два простых шага ниже:

Ваши контактные данные:

Шаг 1
Поздравляем! У вас есть промокод!

Тип желаемой лицензии:

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

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

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

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

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

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


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

Вебинар: Трудности при интеграции SAST, как с ними справляться - 04.04

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

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

Популярные статьи по теме


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

Следующие комментарии next comments
close comment form