Бившият инженер на Microsoft Дейв Плъмър наскоро призна, че най-неприятният бъг, който някога е ималo в издание на Windows не е бил срив в системните програми, а фатална грешка в култовата игра Pinball. Този аркаден симулатор, познат на потребителите на Windows 95 и NT е бил пренесен от изходния код на C, където разработчикът е създал свой собствен графичен и звуков енджин.
Именно в този компонент се криел проблемът: играта не ограничавала честотата на кадрите и се изобразявала толкова бързо, колкото позволявал процесорът.
По време на представянето на играта това почти не се е усещало. Машините, базирани на 200MHz MIPS R4000 работеха с максимум 60-90 кадъра в секунда (FPS) и изглеждаше, че това е повече от достатъчно. Но когато компютрите станаха по-мощни, недостатъкът излезе наяве. Pinball започна да натоварва цялото ядро на процесора, изстисквайки от него до 5000 кадъра в секунда. Проблемът стана толкова забележим, че друг ветеран от Microsoft (Реймънд Чен) решил да проучи причината. Той включил изхода за честотата на кадрите и установил, че броячът просто спира да въвежда стойности, тъй като скоростта отдавна е надхвърлила трицифрено число.
Решението било да се добави ограничител. Чен задал ограничението на 100 кадъра в секунда и потреблението на ресурси моментално спаднало до 1%.
След това разработчиците могат да създават Windows билдове и да стартират Pinball едновременно, без да има опасност от увисване на системата, казва той. За инженерите по онова време това е бил нагледен пример за това как незначителен детайл в кода може да прерасне в сериозен проблем при промяна на хардуерните условия.
Плъмър отбеляза, че наличието на грешка в крайния продукт винаги се е възприемало като неудобство. Вътре в екипа това се е приемало сериозно: счупените билдове или некачествените промени са били приемани безмилостно от колегите, а легендарният архитект на Windows Дейв Кътлър е направил коментар, намеквайки, че авторът явно не е бил в най-добрата си форма, когато е писал кода. Плъмър си спомня, че всички шеги приключвали в момента, в който грешката се появявала в изданието – тогава отговорността ставала абсолютно реална.
Днес историята на Pinball се възприема по-скоро като анекдот за една „ненаситна“ игра, но за инженерите на Microsoft от края на 90-те години тя била урок, че всяка грешка в архитектурата рано или късно става забележима – особено когато става въпрос за софтуер, който се използва от милиони компютри по света.
Всичко важно от света на технологиите, директно в пощата ти.
С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.
Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!