Производительность рендеринга Safari, Firefox и Chrome в OS X

Давно хотел как-то замерить свои субъективные ощущения от скорости работы разных браузеров в макоси, и вот наконец удалось более-менее объективно это осуществить.

Итак, есть:

  • MacBook Pro 13" (non-retina) 2012 года, с видеоадаптером Intel HD4000
  • разрешение экрана 1280x800, окно браузера соответственно немного меньше
  • тестировать будем на сайте habrahabr.ru
  • все экстеншены в браузерах отключены, кроме баннерорезки (баннерорезка оставлена, чтобы случайно выбранные при загрузке страницы баннеры не повлияли на результаты тестирования)

Для измерения FPS использовалась программа Quartz Debug.app из состава «Graphics Tools for Xcode». Измерение производилось хаотическим, но по возможности равномерно распределенным по вертикальному пространству страницы дёрганьем тачпада вверх-вниз.

Небольшое замечение: если вы не пользуесь тачпадом / Magic Mouse / Magic Trackpad, то для вас, как пользователя, результаты и выводы данной статьи не очень важны, т.к. при скроллинге колесом мыши, либо кнопками на клавиатуре достаточно намного более низких значиний FPS, чем рассматриваются здесь.

Собственно, результаты:

Браузер Результат
Firefox 18.0.1 45-50 fps
Safari 6.0.2 ~55 fps
WebKit Nightly (Safari) r140272 (20 January 2013) ~55 fps
Chrome 24.0.1312.52 близко к 60 fps

Замечу, что, вероятно, максимально возможным значением является 60 FPS, т.к. видимо оно (значение) совпадает с частотой вертикальной синхронизации матрицы ноутбука. Если кто-то знает более точные детали, так оно или нет, сообщите.

Итак, победителем по скорости рендеринга можно считать Google Chrome.

Однако!

В хроме присутствует неприятный баг, либо же недоработка — по какой-то причине, он обратывает события от тачпада с задержкой, назовем это input lag'ом. По моим субъективные ощущениям это что-то порядка 50ms. Из-за этого возникает какое-то чувство лагания и тормозов при скроллинге, когда переключаешься например из Safari в хром. Safari и Firefox данного недостатка лишены.

Хотелось бы также как-нибудь точно измерить значение этого input lag'а в Chrome, но я пока не знаю какими утилитами это можно сделать. Нужно 2 программы: одна должна писать лог событий от тачпада (с хорошей точностью, тысячные секунды нужны), а вторая писать лог изменения FPS внутри рендерингового движка макоси (Quartz Extreme?)

Спасибо за внимание.