Ветеран-инженер Microsoft Дэйв Пламмер, признанный эксперт в своей области, назвал худшим багом своей карьеры ошибку, обнаруженную в игре Pinball на Windows NT. Пламмер перекинул оригинальную игру на Windows, переписывая её с ассемблера на C. Также он создал движок для обработки видео и звука. Однако именно в этом самом движке и скрывался серьезный баг, который способствовал резкому увеличению потребления ресурсов CPU.
Отсутствие лимита на кадры
Ошибка заключалась в том, что движок игры не ограничивал количество кадров в секунду. На ранних компьютерных системах это давало от 60 до 90 fps, однако с развитием аппаратного обеспечения и роста мощности компьютеров, игра начинала "пожирать" целое ядро процессора, достигнув тысяч кадров в секунду.
Инженер Microsoft Рэймонд Чен, обладающий детективными навыками, разыскал корень проблемы. Оказалось, что в коде попросту отсутствовал лимитер на количество кадров. Во время отладки он обнаружил, что частота кадров превышает три цифры. Чтобы исправить ситуацию, Чен внедрил ограничитель fps, установив его на уровне 100 кадров в секунду. Это позволило снизить использование процессора до одного процента.
Реакция сообщества и личные выводы
Для Чена исправление ошибки в игре Pinball стало одной из самых значимых побед в его карьере разработчика Windows. Для Пламмера же выпуск такого бага стал настоящим разочарованием, ведь подобная ошибка могла вызвать множество насмешек и упреков со стороны его коллег.
Эта история служит напоминанием о важности тщательной проверки и отладки кода перед его релизом. Несмотря на то, что ошибки неизбежны в мире разработки программного обеспечения, их исправление, как правило, находит положительный отклик у пользователей и внутри профессионального сообщества.