Как Apple водила козу, или Как в 3,7 раза ускорить Safari

Как сделать человеку хорошо? Народная мудрость советует сделать плохо, а потом вернуть как было. Именно так недавно программист Apple Джофф Гарен (Geoff Garen) в 3,7 раза ускорил движок браузера Safari WebKit, просто убрав оттуда функцию, заставлявшую программу не делать ничего. Пикантность ситуации состоит в том, что эту функцию туда добавил его коллега Мачей Стаховьяк (Maciej Stachowiak).

First Pic

Упростив суть и отбросив излишние подробности, можно сказать, что функция sleep () заставляет WebKit на протяжении какого-то времени не делать ничего, а подобное «ничегонеделание» и приводит в итоге к заметным подтормаживаниям и зависаниям в работе. Вообще, использование подобной функции считается чаще всего плохим тоном, а уж тем более такое использование, как в этом случае. Дело в том, что функция вызывалась в блоке управления памятью, который вызывался весьма часто.

Эту досадную промашку исправили еще в мае этого года, но буквально на днях эта новость всплыла на известном сайте Hacker News и стала началом длительного троллинга инженеров Apple оживленной дискуссии. В итоге в посте появился и сам автор этих строк, и объяснил что «изначально этот код разрабатывался для серверного применения, и sleep () там оправдан, но для WebKit, возможно, это и является перебором».

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

Comic

Отдельную пикантность ситуации добавляет тот факт, что Мачей Стаховьяк является в Apple лидером команды разработчиков, отвечающих за Safari и WebKit, и уж кому как не ему должна быть известна одна из первых заповедей программиста: copy-paste — это зло!

В любом случае, ошибка была исправлена, а нам остается порадоваться, что «мы стали более лучше серфить в Интернете».

По материалам https://news.ycombinator.com/