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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
700
Léonie Watson
frontfest
0
750
Кирилл Чернышев
frontfest
0
760
Виктор Грищенко
frontfest
0
650
Игорь Алексеенко
frontfest
0
500
Other Decks in Programming
See All in Programming
AI巻き込み型コードレビューのススメ
nealle
1
160
ThorVG Viewer In VS Code
nors
0
770
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
430
CSC307 Lecture 09
javiergs
PRO
1
830
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
950
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
180
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.3k
KIKI_MBSD Cybersecurity Challenges 2025
ikema
0
1.3k
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
300
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
3.9k
Lambda のコードストレージ容量に気をつけましょう
tattwan718
0
120
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
750
HDC tutorial
michielstock
1
370
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
64
The Language of Interfaces
destraynor
162
26k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
110
Product Roadmaps are Hard
iamctodd
PRO
55
12k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
250
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.9k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
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