Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Антон Епрев
Search
FrontFest
November 21, 2017
Programming
0
700
Антон Епрев
FrontFest
November 21, 2017
Tweet
Share
More Decks by FrontFest
See All by FrontFest
Тим Чаптыков
frontfest
0
1.2k
Егор Банщиков
frontfest
0
890
Jose M. Perez
frontfest
0
750
Алексей Иванов
frontfest
0
1.4k
Екатерина Пригара
frontfest
0
690
Léonie Watson
frontfest
0
750
Кирилл Чернышев
frontfest
0
760
Виктор Грищенко
frontfest
0
650
Игорь Алексеенко
frontfest
0
500
Other Decks in Programming
See All in Programming
Go コードベースの構成と AI コンテキスト定義
andpad
0
150
Tinkerbellから学ぶ、Podで DHCPをリッスンする手法
tomokon
0
150
Claude Codeの「Compacting Conversation」を体感50%減! CLAUDE.md + 8 Skills で挑むコンテキスト管理術
kmurahama
1
690
JETLS.jl ─ A New Language Server for Julia
abap34
2
470
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
170
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
2.1k
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.4k
Developing static sites with Ruby
okuramasafumi
0
340
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
470
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
150
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
2
3.2k
AIの誤りが許されない業務システムにおいて“信頼されるAI” を目指す / building-trusted-ai-systems
yuya4
6
4.1k
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
180
Building Flexible Design Systems
yeseniaperezcruz
330
39k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
0
34
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
58
41k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
320
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Tell your own story through comics
letsgokoyo
0
770
Paper Plane (Part 1)
katiecoart
PRO
0
2.5k
Transcript
История одной метрики производительности в Booking.com Антон Епрев @eprev
Статья Jake Archibald о rel=noopener – goo.gl/kLUYba <a href="https://example.com" target="_blank"
rel="noopener" > … </a>
None
A/B тестирование
<a href="…" target="_blank" > … </a> <a href="…" target="_blank" rel="noopener"
> … </a> A B
Не измерив, не улучшить!
Как собирать фреймрейт метрику* 1. Собирайте релевантные данные 2. Сводите
к минимуму эффект наблюдателя 3. Избегайте смещения выборки * И любую другую метрику производительности
«Time to Scroll»
Фреймрейт сервис let stopped = true; let timer; window.addEventListener("scroll", ()
=> { if (stopped) { stopped = false; start(); } else { clearTimeout(timer); } timer = setTimeout(() => stopped = true, 200); });
Фреймрейт сервис (продолжение) function start() { let frames = 0;
const ts = performance.now(); requestAnimationFrame(function raf() { frames++; if (stopped) { const fps = Math.round( frames * 1000 / (performance.now() - ts) ); } else { requestAnimationFrame(raf); } }); }
A/A тест: Средние значения фреймрейт 1 % 10 % 25
% 50 % 75 % 90 % 95 % 99 % 2 26 40 51 57 60 60 60
Тест rel=noopener: Средние значения фреймрейт 1 % 10 % 25
% 50 % 75 % 90 % 95 % 99 % 2 11 28 47 56 60 60 60 2 11 28 47 56 60 60 60
Jank тест (function jank() { var ts = Date.now(); while
(Date.now() - ts < 30); setTimeout(jank, 100); }());
Jank тест: Средние значения фреймрейт 1 % 10 % 25
% 50 % 75 % 90 % 95 % 99 % 3 29 42 52 58 60 60 60 2 24 38 49 55 59 60 60
Кол-во сессий и средние значения фреймрейт (desktop)
Кол-во сессий и средние значения фреймрейт (mobile)
Конверсия и средние значения фреймрейт X 6X
IE9 jank тест: Средние значения фреймрейт 1 % 10 %
25 % 50 % 75 % 90 % 95 % 99 % 2 25 37 44 50 55 59 60 2 22 32 40 46 52 55 60
Резюме – Не пытайтесь улучшить то, чего не можете увидеть
– Собирайте релевантные метрики – Избегайте необъективности – Что работает для нас, может не работать для вас
Спасибо! Антон Епрев @eprev