{"version":"https://jsonfeed.org/version/1","title":"Aaron Gustafson: Content tagged performance","description":"The latest 20 posts and links tagged performance.","home_page_url":"https://www.aaron-gustafson.com","feed_url":"https://www.aaron-gustafson.com/feeds/performance.json","author":{"name":"Aaron Gustafson","url":"https://www.aaron-gustafson.com"},"icon":"https://www.aaron-gustafson.com/i/og-logo.png","favicon":"https://www.aaron-gustafson.com/favicon.png","expired": false,"items":[{"id":"https://www.aaron-gustafson.com/notebook/links/save-our-world/","title":"đź”— Save Our World","content_html":"
I wish I could have been at CSUN to see Jen Strickland deliver this talk. It’s about the potential and actual harms inherent in web design and how to address them in our work.
Lots of juicy stats to share in your team discussions!
","url":"https://www.aaron-gustafson.com/notebook/links/save-our-world/","external_url":"https://github.com/jenstrickland/CSUN2023/tree/main","tags":["accessibility","progressive enhancement","performance"],"image":"https://opengraph.githubassets.com/1859bbad57466a3830d682be630a63f22fa117502e1d3ef98561b36400c14615/jenstrickland/CSUN2023","date_published":"2023-04-05T22:03:37Z"},{"id":"https://www.aaron-gustafson.com/notebook/links/building-a-resilient-frontend-using-progressive-enhancement/","title":"đź”— Building a resilient frontend using progressive enhancement","summary":"How did I miss this? The gov.uk Service Manual recommends progressive enhancement for all their websites.","content_html":"How did I miss this? The gov.uk Service Manual recommends progressive enhancement for all their websites.
Using progressive enhancement means your users will be able to do what they need to do if any part of the stack fails. Building your service using progressive enhancement will:
- make your service more resilient
- mean your service’s most basic functionality will work and meet the core needs of the user
- improve accessibility by encouraging best practices like writing semantic markup
- help users with device or connectivity limitations to use your service
🥰
","url":"https://www.aaron-gustafson.com/notebook/links/building-a-resilient-frontend-using-progressive-enhancement/","external_url":"https://www.gov.uk/service-manual/technology/using-progressive-enhancement","tags":["accessibility","performance","progressive enhancement","web design","web development"],"image":"https://www.gov.uk/assets/static/govuk-opengraph-image-dade2dad5775023b0568381c4c074b86318194edb36d3d68df721eea7deeac4b.png","date_published":"2022-11-03T16:58:46Z"},{"id":"https://www.aaron-gustafson.com/notebook/links/real-world-performance-budgets-perfnow-2022/","title":"đź”— Real-World Performance Budgets [PerfNow 2022]","summary":"A clear and focused walkthrough of how to get started with performance budgets and then how to ramp up.","content_html":"A clear and focused walkthrough of how to get started with performance budgets and then how to ramp up.
","url":"https://www.aaron-gustafson.com/notebook/links/real-world-performance-budgets-perfnow-2022/","external_url":"https://www.slideshare.net/tammyeverts/realworld-performance-budgets-perfnow-2022","tags":["performance"],"image":"https://cdn.slidesharecdn.com/ss_thumbnails/2022-perfnow-performance-budgets-221027130426-9aa85c3a-thumbnail.jpg?width=640&height=640&fit=bounds","date_published":"2022-11-03T16:45:16Z"},{"id":"https://www.aaron-gustafson.com/notebook/links/will-serving-real-html-content-make-a-website-faster-lets-experiment/","title":"🔗 Will Serving Real HTML Content Make A Website Faster? Let's Experiment!","content_html":"When you’ve worked on the web for as long as I have, you see trends come and go. I’ve witnessed at least three different eras where folks began to put all their eggs in the JavaScript basket, only to realize the massive hits they were taking to performance.
In this piece for WebPageTest, Scott Jehl uses a new “experiments” feature to demonstrate how serving HTML would make a ton of popular websites much, much faster. Some of these companies learned this lesson previously (and even wrote about it) only to have thrown their own advice out the window, which is disappointing.
Serving HTML will always result in faster page loads. There is no way around that. Sending your JavaScript framework to the client and having it render the HTML adds a ton of extra steps:
Compare that to the HTML-first route:
Sure, on subsequent navigations having JavaScript request only the bits and pieces you need is a performance win, but that first render is a beast. And you can totally load that JavaScript later, after the page is rendered.
","url":"https://www.aaron-gustafson.com/notebook/links/will-serving-real-html-content-make-a-website-faster-lets-experiment/","external_url":"https://blog.webpagetest.org/posts/will-html-content-make-site-faster/","tags":["JavaScript","performance"],"image":"https://blog.webpagetest.org/cloudinary/webpagetest/image/upload/f_auto,q_auto,c_fill,g_xy_center,h_630,w_1200,x_0/Mimic_Post_Cover_sedsq6.png","date_published":"2022-10-07T17:31:05Z"},{"id":"https://www.aaron-gustafson.com/notebook/links/making-the-world-s-fastest-website-and-other-mistakes-series-/","title":"🔗 Making the world’s fastest website, and other mistakes (Series)","content_html":"This 4 part series walks through the various levels of Hell you must traverse to actually achieve solid web performance on a large e-commerce platform. What is most amazing to me is how things continue to align pretty directly with the philosophy of progressive enhancement.
","url":"https://www.aaron-gustafson.com/notebook/links/making-the-world-s-fastest-website-and-other-mistakes-series-/","external_url":"https://dev.to/tigt/making-the-worlds-fastest-website-and-other-mistakes-56na","tags":["performance","web development","progressive enhancement"],"image":"https://res.cloudinary.com/practicaldev/image/fetch/s--SeomjpZ---/c_imagga_scale,f_auto,fl_progressive,h_500,q_auto,w_1000/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rix9oblwajfxxrtwc9xk.jpg","date_published":"2022-04-28T16:37:38Z"},{"id":"https://www.aaron-gustafson.com/notebook/links/benchmarking-javascript-memory-usage/","title":"🔗 Benchmarking JavaScript Memory Usage","content_html":"Testing JavaScript memory usage is not done often enough, but it’s incredibly important. This is an awesome guide from Tim Kadlec.
","url":"https://www.aaron-gustafson.com/notebook/links/benchmarking-javascript-memory-usage/","external_url":"https://blog.webpagetest.org/posts/benchmarking-javascript-memory-usage/","tags":["JavaScript","performance"],"image":"https://blog.webpagetest.org/cloudinary/webpagetest/image/upload/f_auto,q_auto,c_limit,w_1200,h_630/MemoryBlogImage_uflo0b.psd","date_published":"2021-07-23T21:41:30Z"},{"id":"https://www.aaron-gustafson.com/speaking-engagements/delivering-critical-information-services/","title":"📢 Delivering Critical Information & Services","summary":"In this session, Aaron discusses the many challenges to delivering critical information and services as well as the steps you can take to overcome those challenges.","content_html":"Early on, Internet access was considered a luxury. Those times have passed and the Internet, especially the Web, has become a necessity. Whether your users are trying to access their money, gather health information, attend class, apply for assistance, or any of the other hundreds (if not thousands) of critical tasks people do on the web, your site needs to be prepared to meet their needs. And it needs to work, no matter what.
In this session, Aaron discusses the many challenges to delivering critical information and services as well as the steps you can take to overcome those challenges. He’ll explore ways to make sure you can meet users on a variety of devices—and not the just the latest and greatest high end ones folks are talking about; how to make it accessible to people with disabilities; and how to load—and load quickly—on limited-bandwidth connections.
","url":"","tags":["accessibility","inclusive design","performance","web design","web development"],"image":"https://www.aaron-gustafson.com/undefined","date_published":"2020-08-17T05:09:00Z"},{"id":"https://www.aaron-gustafson.com/notebook/links/2020-04-21-the-cost-of-javascript-frameworks/","title":"đź”— The Cost of Javascript Frameworks","content_html":"Excellent analysis by Tim here:
Good frameworks should provide a better starting point on the essentials (security, accessibility, performance) or have built-in constraints that make it harder to ship something that violates those.
That doesn’t appear to be happening with performance (nor with accessibility, apparently).
…
What is clear: right now, if you’re using a framework to build your site, you’re making a trade-off in terms of initial performance—even in the best of scenarios.
Some trade-off may be acceptable in the right situations, but it’s important that we make that exchange consciously.
Do yourself a favor and tuck into the numbers here. He presents a substantial amount of very useful information.
","url":"https://www.aaron-gustafson.com/notebook/links/2020-04-21-the-cost-of-javascript-frameworks/","external_url":"https://timkadlec.com/remembers/2020-04-21-the-cost-of-javascript-frameworks/","tags":["performance","JavaScript"],"image":"https://timkadlec.com/images/cost-of-frameworks-bytes-mobile-sm.png","date_published":"2020-04-27T19:39:10Z"},{"id":"https://www.aaron-gustafson.com/publications/articles/request-with-intent-caching-strategies-in-the-age-of-pwas/","title":"📄 Request with Intent: Caching Strategies in the Age of PWAs","content_html":"Caching media files, especially images, seems like an obvious way to improve performance, but should we? To provide a more performant UX without abusing users’ network connections or hard drives, I put a spin on classic best practices, experiment with media caching strategies, and share smart Cache API tricks.
","url":"https://alistapart.com/article/request-with-intent-caching-strategies-in-the-age-of-pwas/","tags":["progressive web apps","responsive web design","performance"],"date_published":"2019-11-21T00:00:00Z"},{"id":"https://www.aaron-gustafson.com/notebook/links/5g-will-definitely-make-the-web-slower-maybe/","title":"🔗 5G Will Definitely Make the Web Slower, Maybe","content_html":"The bigger the pipe, the more we’ll shove into it. This is an important piece from Scott Jehl. You should give it a read.
","url":"https://www.aaron-gustafson.com/notebook/links/5g-will-definitely-make-the-web-slower-maybe/","external_url":"https://www.filamentgroup.com/lab/5g/","tags":["performance","JavaScript","web development"],"image":"https://www.filamentgroup.com/images/icons/twittercard.png","date_published":"2019-09-25T21:56:56Z"},{"id":"https://www.aaron-gustafson.com/notebook/links/the-weight-of-the-wwworld-is-up-to-us-by-patty-toland/","title":"🔗 The Weight of the WWWorld is Up to Us by Patty Toland","content_html":"This problem is on us. Yes, we need to better prioritize our asset delivery, but most importantly, we need to stop delivering so much JavaScript. We need to audit our script inventory, and scrutinize our 3rd party integrations regularly, as many of these packages are abandoned or meant to be short-lived. … We should do whatever we can to keep our team members aware of their own impact, across all roles.
So much awesome content in Patty’s talk. In particular…
","url":"https://www.aaron-gustafson.com/notebook/links/the-weight-of-the-wwworld-is-up-to-us-by-patty-toland/","external_url":"https://adactio.com/journal/15740","tags":["performance","progressive enhancement","web development"],"image":"https://adactio.com/images/photo-300.jpg","date_published":"2019-08-29T23:29:54Z"},{"id":"https://www.aaron-gustafson.com/notebook/links/-how-web-content-can-affect-power-usage/","title":"🔗 How Web Content Can Affect Power Usage","content_html":"There was a common assertion that slow networks were a third-world challenge. Remember Facebook’s network challenges? They always talked about new markets in India and Africa. The implication is that this isn’t our problem in, say, Omaha or New York.
Pew Research provided a lot of data back then that showed that this thinking was wrong. Use of cell phones, especially smartphones and tablets, escalated dramatically in the United States. There was a trend towards mobile-only usage. This was in low-income households—about one third of the population. Among 5,400 panelists, 15% did not have a JavaScript-enabled device.
This is a great overview of the many ways in which our designs (and code) affect power usage and battery life.
","url":"https://www.aaron-gustafson.com/notebook/links/-how-web-content-can-affect-power-usage/","external_url":"https://webkit.org/blog/8970/how-web-content-can-affect-power-usage/","tags":["performance"],"image":"https://webkit.org/wp-content/uploads/Web-Inspector-CPU-Timeline-Overview-Light.png","date_published":"2019-08-29T22:29:17Z"},{"id":"https://www.aaron-gustafson.com/speaking-engagements/media-in-the-age-of-pwas/","title":"📢 Media in the Age of PWAs","summary":"In this session I discuss some of the potential pitfalls in implementing Service Workers, especially when it comes to managing heavy files like images and video.","content_html":"Our industry is abuzz with talk about Progressive Web Apps (PWAs) and with good reason: they are a great way to improve the experiences our users have on our sites, especially when it comes to performance. Using Service Workers—a key component of PWAs—we can manage network requests and the cache to an incredibly granular degree. We can also totally abuse the privilege Service Workers grant us when it comes to writing files to disk.
In this session, I discuss some of the potential pitfalls in implementing Service Workers, especially when it comes to managing heavy files like images and video. He’ll provide guidance on current best practices in cache management. And he’ll offer a few simple recipes you can put to use right away to deliver amazing experiences for your users that respect their data usage and disk space.
","url":"","tags":["performance","progressive web apps"],"image":"https://www.aaron-gustafson.com/undefined","date_published":"2019-05-01T00:09:00Z"},{"id":"https://www.aaron-gustafson.com/notebook/links/native-image-lazy-loading-for-the-web-/","title":"🔗 Native image lazy-loading for the web!","content_html":"I’m incredibly excited that this feature is shipping in Chromium. It was one of my favorite IE features.
Note: I no longer use “native” in this context, but it remains in quoted material.
","url":"https://www.aaron-gustafson.com/notebook/links/native-image-lazy-loading-for-the-web-/","external_url":"https://addyosmani.com/blog/lazy-loading/","tags":["HTML","performance"],"image":"https://addyosmani.com/assets/images/loading-attribute.png","date_published":"2019-04-08T18:30:23Z"},{"id":"https://www.aaron-gustafson.com/notebook/links/hard-costs-of-third-party-scripts/","title":"đź”— Hard Costs of Third-Party Scripts","content_html":"Dave has an excellent round-up of considerations when looking at your reliance on 3rd party scripts (or any 3rd party resources, for that matter). Most are hidden and all have a serious effect on download performance, UI responsiveness, and, ultimately, user experience.
","url":"https://www.aaron-gustafson.com/notebook/links/hard-costs-of-third-party-scripts/","external_url":"https://daverupert.com/2018/10/hard-costs-of-third-party-scripts/","tags":["performance"],"image":"https://daverupert.com/images/global/newshammericon.png","date_published":"2018-10-29T23:31:47Z"},{"id":"https://www.aaron-gustafson.com/notebook/links/performance-budgets/","title":"🔗 Start Performance Budgeting","content_html":"The Web is an undependable place, so this shouldn’t be very surprising.
More thoughtful (and actionable) advice about performance budgets. Would that more companies would do this!
","url":"https://www.aaron-gustafson.com/notebook/links/performance-budgets/","external_url":"https://addyosmani.com/blog/performance-budgets/","tags":["performance"],"image":"https://addyosmani.com/assets/images/perf-budget-metrics.png","date_published":"2018-10-19T22:16:29Z"},{"id":"https://www.aaron-gustafson.com/speaking-engagements/better-performance-greater-accessibility/","title":"📢 Better Performance == Greater Accessibility","summary":"In this intensely practical session, Aaron will explore the ins and outs of page load performance by showing how he made the web site of the 10K Apart meet its own contest rules, by having a site that was functional and attractive even without JavaScript, and was less than ten kilobytes at initial load.","content_html":"Design is problem solving. Each and every day, we are tasked with finding ways to reduce the friction our users experience on the Web. That means streamlining flows, reducing cognitive load, writing more appropriate copy, and (of course) building accessible experience. But experience is about more than just interface. Our users’ experiences begin with their first request to our servers.
In this intensely practical session, Aaron will explore the ins and outs of page load performance by showing how he made the web site of the 10K Apart meet its own contest rules, by having a site that was functional and attractive even without JavaScript, and was less than ten kilobytes at initial load. You’ll walk away with a better understanding of the page load process as well as numerous ways you can improve the projects you are working on right now.
","url":"","tags":["performance","accessibility"],"image":"https://www.aaron-gustafson.com/undefined","date_published":"2018-10-11T00:09:00Z"},{"id":"https://www.aaron-gustafson.com/notebook/links/how-to-build-a-lowtech-website/","title":"🔗 How to Build a Low-tech Website?","content_html":"I love this project. It ticks so many boxes for me as it’s all about doing more with less. I love the ways they’ve found to reduce consumption on the server side and throughput to their users as well. So much to unpack!
","url":"https://www.aaron-gustafson.com/notebook/links/how-to-build-a-lowtech-website/","external_url":"https://solar.lowtechmagazine.com/2018/09/how-to-build-a-lowtech-website/","tags":["web design","web development","performance"],"image":"https://solar.lowtechmagazine.com//dithers/sps_close.png","date_published":"2018-10-03T22:38:05Z"},{"id":"https://www.aaron-gustafson.com/notebook/links/2018-09-06-chromes-noscript-intervention/","title":"🔗 Chrome’s NOSCRIPT Intervention","content_html":"You can always count on Tim Kadlec to deep dive into the implications of new performance features and Chrome’s decision to remove block JavaScript in certain scenarios is no exception.
","url":"https://www.aaron-gustafson.com/notebook/links/2018-09-06-chromes-noscript-intervention/","external_url":"https://timkadlec.com/remembers/2018-09-06-chromes-noscript-intervention/","tags":["performance","JavaScript"],"image":"https://timkadlec.com/images/noscript-bbc-compare.png","date_published":"2018-09-17T23:33:02Z"},{"id":"https://www.aaron-gustafson.com/notebook/links/the-developer-experience-bait-and-switch/","title":"🔗 The “Developer Experience” Bait-and-Switch","content_html":"Long story short, the NOSCRIPT intervention looks like a really great feature for users. More often than not it provides significant reduction in data usage, not to mention the reduction in CPU time—no small thing for the many, many people running affordable, low-powered devices.
This piece is worth a thorough read. Then a re-read. It’s that important.
[W]e need to confront the “developer experience” bait-and-switch. Tools that cost the poorest users to pay wealthy developers are bunk. To do better, we need to move the conversation to an evidence-based footing. I wish the arguments folks made against my positions were data-driven. There’s so much opening! Perhaps a firm is doing market analysis and only cares about ever reaching users who make more than $100K USD/yr or who are in enterprise settings. Perhaps research will demonstrate that interactivity isn’t as valuable as getting bits on screen (the usual SSR argument). Or, more likely, that acknowledgement (bits on screen) buys a larger-than-anticipated amount of perceptual padding (perhaps due to scanning). Perhaps the global network landscape is shifting so dramatically that the budget for client-side JS runtime has increased. Perhaps the median CPU improvement that doesn’t look set to materialize until 2021 at the earliest will happen much earlier; i.e., maybe the current baseline is wrong!
But we aren’t having that conversation. And we aren’t going to have it until we identify, call-out, and end the “developer experience” bait-and-switch.
Further reading from this site:
","url":"https://www.aaron-gustafson.com/notebook/links/the-developer-experience-bait-and-switch/","external_url":"https://infrequently.org/2018/09/the-developer-experience-bait-and-switch/","tags":["JavaScript","performance"],"image":"https://infrequently.org/wp-content/uploads/2018/09/http_archive_js_bytes_chart.jpg","date_published":"2018-09-14T20:17:31Z"}]}