Google DoubleClick (2016)
Google DoubleClick (2016)
Google Research (2018)
Mobify Insights Report (Q2 2016)
April 2018 Traffic
April 2018 Mobile Traffic
The State of LTE, Open Signal (2017)
- 300 ms RTT
- 1.6 Mbps Download
- 768 Kbps Upload
- Moto G (Gen 4)
300ms DNS lookup
1200ms Network overhead
300ms TCP handshake
600ms TLS handshake
300ms HTTP request
High Performance Browser Networking, Ilya Grigorik (2013)
5000ms Performance budget
1200ms Network overhead
Assuming RTT = 300ms
⬇️ 1.6 Mbps Download
⬆️ 768 Kbps Upload
⏱ 3800ms / 3.8s
1500 ms
JavaScript Start-up Performance, Addy Osmani (2017)
⚙️ gzipFactor = 5x
🛬 connectionSpeed = 0.2 MB
⏱️ budgetAvailable = 3.8s
😵 parseEvalFactor = 1.5s / MB
budgetAvailable = transferTime + parseEvalTime
transferTime = compressedJsSize / connectionSpeed
parseEvalTime = fullJsSize x parseEvalFactor
fullJsSize = compressedJsSize x gzipFactor
budgetAvailable = transferTime + parseEvalTime
⚙️ gzipFactor = 5
🛬 connectionSpeed = 0.2 MB
⏱️ budgetAvailable = 3.8s
😵 parseEvalFactor = 1.5s / MB
transferTime = compressedJsSize / connectionSpeed
parseEvalTime = fullJsSize x parseEvalFactor
budgetAvailable = transferTime + parseEvalTime
⏱️ 3.8s = transferTime + parseEvalTime
⏱️ 3.8s = (compressedJsSize / connectionSpeed) + parseEvalTime
⏱️ 3.8s = (compressedJsSize / 🛬 0.2) + parseEvalTime
⏱️ 3.8s = (compressedJsSize / 0.2) + fullJsSize x parseEvalFactor
⏱️ 3.8s = (compressedJsSize / 🛬 0.2) + fullJsSize x 😵 1.5
fullJsSize = compressedJsSize x gzipFactor
⚙️ gzipFactor = 5
🛬 connectionSpeed = 0.2 MB
⏱️ budgetAvailable = 3.8s
😵 parseEvalFactor = 1.5s / MB
transferTime = compressedJsSize / connectionSpeed
parseEvalTime = fullJsSize x parseEvalFactor
budgetAvailable = transferTime + parseEvalTime
fullJsSize = compressedJsSize x gzipFactor
⏱️ 3.8s = (compressedJsSize / 🛬 0.2) + (compressedJsSize x gzipFactor) x 😵 1.5
⏱️ 3.8s = (compressedJsSize / 🛬 0.2) + fullJsSize x 😵 1.5
⏱️ 3.8s = (compressedJsSize / 🛬 0.2) + (compressedJsSize x gzipRatio) x 😵 1.5
⏱️ 3.8s = (compressedJsSize / 🛬 0.2) + (compressedJsSize x ⚙️ 5) x 😵 1.5
⏱️ 3.8s = (compressedJsSize / 🛬 0.2) + (compressedJsSize x ⚙️ 5) x 😵 1.5