Tim Kadlec
timkadlec.com · Personal blog · on HN since 2011
Tim Kadlec, a web performance consultant, writes about JavaScript costs, AMP, web standards and the ethics of performance.
What HN saysHN commenters cite his data on how fast AMP is and the CPU cost of JavaScript frameworks when debating web performance.
65HN people shared it
16linked it in comments
54stories submitted
1.8Kstory points
4 years agolast shared
2011people per year2026
Most-shared posts
- 1The Cost of JavaScript Frameworks13 people · 183 points · first shared 2020 · 169 comments on HN
- 2How fast is AMP really?5 people · 197 points · first shared 2018 · 163 comments on HN
- 3Is Apple stifling progress in Web standards?3 people · 349 points · first shared 2015 · 144 comments on HN
- 4CPP: A Standardized Alternative to AMP3 people · 308 points · first shared 2016 · 93 comments on HN
- 5The Ethics of Web Performance3 people · 204 points · first shared 2019 · 163 comments on HN
- 6The Two Faces of AMP3 people · 152 points · first shared 2018 · 56 comments on HN
- 7Investing in RSS3 people · 5 points · first shared 2023 · 1 comments on HN
- 8Taking Let's Encrypt for a Spin2 people · 97 points · first shared 2015 · 49 comments on HN
- 9Media Query & Asset Downloading Tests2 people · 2 points · first shared 2012 · discussion on HN
- 10How fast is fast enough?2 people · 1 points · first shared 2014 · discussion on HN
- 11Media Query and Asset Downloading Results2 people · 1 points · first shared 2013 · discussion on HN
- 12WTFWG1 people · 205 points · first shared 2012 · 36 comments on HN
- 13Limiting JavaScript?1 people · 94 points · first shared 2019 · 96 comments on HN
- 14Death to Captchas1 people · 10 points · first shared 2011 · 16 comments on HN
- 15Alternatives to Captcha1 people · 7 points · first shared 2011 · discussion on HN
What HN people wrote when they linked it
asdfasgasdgasdg · 2020-12-17
The first article I found about this was https://timkadlec.com/remembers/2018-03-19-how-fast-is-amp-really/, which claims that AMP is actually faster in practice, probably mostly because it encourages good habits. Where are you seeing that it's not faster? This article is from '18 so perhaps there has been a change in how well AMP performs versus the baseline.
Also worth noting that we should probably judge AMP as a whole product. What if it didn't make things faster at all, but did make them predictable and amenable to prerendering? The product is AMP+Cache+Prerendering. Prerendering unquestionably gives huge speed advantages in many scenarios. If you don't have AMP, you don't have prerendering, which means AMP-as-a-product gives significant speed advantages, since it's on the critical path to prerendering. (All of this is of course predicated on the idea that you can't practically prerender normal HTML pages, which perhaps you can, I don't know. I'm just saying if that justification for AMP is correct, it shouldn't necessarily matter that HTML+AMP markup is not faster than HTML markup.)
Someone · 2013-06-27
Interesting that they aim to have a single resolution-independent logo ("This tied into another goal of having the image hold up with greater clarity at smaller sizes" and "with high resolution displays in mind"), while traditionally, advice was to tweak icons to their display size and resolution. For example, https://developer.apple.com/library/mac/ipad/#documentation/userexperi… says "redraw art as you scale down" and "do not use the standard-resolution 32x32 icon as the 16x16@2 icon". Similarly, http://msdn.microsoft.com/en-us/library/windows/desktop/aa511280.aspx says "Simply scaling down from the 256x256 size does not work" and "As an icon gets smaller, transparency and some special details found in larger sizes should be sacrificed in order to simplify and get the point across."
This isn't purely by technological choice ("we want a svg logo"), as one can somewhat build a svg where the level of detail varies depending on display size (http://timkadlec.com/2013/04/media-queries-within-svg/).
So it's either a deliberate "it's better that way" choice, or a "better one really good logo than a couple of less good ones", or they weren't aware of media queries, or they don't think them supported well enough.
dieulot · 2022-06-27
This article compares the CPU times of every site using Angular/React/Vue/jQuery known by the HTTP Archive and comes to a very different conclusion: https://timkadlec.com/remembers/2020-04-21-the-cost-of-javascript-fram…
ehsankia · 2021-06-05
Just searched `opera browser "jpg" "yuv"`, no date filtering. Second result is:
https://timkadlec.com/remembers/2018-03-22-compressive-images-revisite…
Seems to be it?
theandrewbailey · 2020-05-08
See the footnotes. https://timkadlec.com/remembers/2020-04-21-the-cost-of-javascript-fram…
pornel · 2019-01-12
Yes, AMP is rather slow: https://timkadlec.com/remembers/2018-03-19-how-fast-is-amp-really/
and looks fast mainly because Google preloads it: https://ferdychristant.com/amp-the-missing-controversy-3b424031047
Illniyar · 2018-08-08
Actually the main performance gains is by google search preloading everything (basically putting it in an iFrame before you click on it). Which practically means that pages load instantly.
https://timkadlec.com/remembers/2018-03-19-how-fast-is-amp-really/
sureaboutthis · 2018-02-21
>The web community has stated over and over again that we’re not comfortable with Google incentivizing the use of AMP with search engine carrots. In response, Google has provided yet another search engine carrot for AMP.
This wouldn’t bother me if AMP was open about what it is: a tool for folks to optimize their search engine placement. But of course, that’s not the claim. The claim is that AMP is “for the open web.”
https://timkadlec.com/remembers/2018-02-14-the-two-faces-of-amp/
More: https://www.quirksmode.org/blog/archives/2018/02/linkbait_37.html
minijackson · 2017-01-17
CPP (Content Performance Policy) is an open, standardized alternative to AMP, that may need help to finish it:
Draft: http://wicg.github.io/ContentPerformancePolicy/
Github: https://github.com/wicg/ContentPerformancePolicy/
Launch article: https://timkadlec.com/2016/02/a-standardized-alternative-to-amp/
HN: https://news.ycombinator.com/item?id=12787462
niftich · 2016-10-21
Finally!
'Pointer events' originated at Microsoft, after the W3C effort to standardize Apple's 'Touch events' became uncertain due to patent issues. For a while, despite admitting it's a more elegant spec for unified input, Google were reluctant to add it because Apple wasn't interested [1][2].
Now Google have changed their mind once more and shipped this, making Apple the only major outlier. The pains of shimming these similar-but-different APIs will continue for a bit, but hopefully Apple will make this concession in the end.
[1] https://timkadlec.com/2015/02/apples-web/
[2] https://mobiforge.com/news-comment/who-wants-pointer-events-api-everyo…
Yaggo · 2016-03-16
It's actually worse on mobile, because mobile connections typically are not order of magnitude slower than non-mobile, but mobile cpu power can be order of magnitude more limited (esp. on lower end hardware).
https://timkadlec.com/2014/09/js-parse-and-execution-time/
stavrus · 2015-05-19
Why would you consider these analytics scripts useless? The article mentioned several reasons they want to be tracking this timing information (monitoring of slow backends/CDNs and the performance of their own scripts) - having that information is vital for ensuring the usability of the site [1]. If a portion of your userbase all of a sudden starts loading the webpage much slower than usual (e.g. from issues as diverse as bad network routing or just a specific browser choking on your scripts), having the information available to you to quickly diagnose and fix the problem is a lifesaver. After all, the website is their product, so they need to ensure it's always available and usable for all their customers.
[1] http://timkadlec.com/2014/01/fast-enough/
jordanlev · 2014-12-10
Fascinating... I never heard about this side-effect of disabling zoom! I did some googling and from what I can tell, this only applies to some Android browsers, not iOS?
If that's the case, it seems like throwing out the baby with the bathwater, since it does have the accessibility issue and removing the delay can be better-achieved on ALL devices with some of the JS libraries that others have linked to.
Here's a blog post I found that talks about the limitations of this "avoid touch delay by disabling zoom" technique: http://timkadlec.com/2013/11/Avoiding-the-300ms-click-delay-accessibly…
voyou · 2013-09-11
I don't think that's right; at least, a quick test on the browser I'm using right now (Chrome 29) suggests otherwise, as do this guy's tests from last year: http://timkadlec.com/2012/04/media-query-asset-downloading-results/
CharlieDigital · 2023-02-05
I think author's point is that React is the absolute worst of the evils and it's proprietors shout its false virtues so loudly that it drowns out all discourse and rational thought.
It performs the worst (by a large margin) of the major JS frameworks https://krausest.github.io/js-framework-benchmark/2023/table_chrome_10…
And is highly inefficient in both compute and space: https://timkadlec.com/remembers/2020-04-21-the-cost-of-javascript-fram…
Comparatively, Vue for example, can be used progressively. It is one of the core reasons the Wikimedia Foundation and GitLab chose it:
https://phabricator.wikimedia.org/T241180 . Solid and Preact both perform close to Vanilla and bundle far smaller, improving the end user experience. One of Vue's…
lhorie · 2020-05-11
There was another article here recently that is relevant[1]
One takeaway was that given a large sample of sites, the baseline size correlates fairly well with how the bundle size scales as projects grow. So if you have a 65kb baseline, you're more likely to end up with a larger bundle size in a "real world" project than if you used a framework with a 5kb baseline. The reasons are not clear (they could be anywhere from direct causation to indirect causes like incidental complexity due to some communities' higher likelihood of using libraries without auditing them), but the results are what they are, nonetheless.
Also, 65kb gzipped means you're running the uncompressed amount of JS. As a rule of thumb, the more JS you're running, the slower the site is going to be. This matters a lot for mobile, where JS execution speed can be absolutely abysmal (on top of slow network speeds, higher chance of resource timeouts, etc).
[1] https://timkadlec.com/remembers/2020-04-21-the-cost-of-javascript-fram…