{"id":2511,"date":"2014-06-28T21:26:26","date_gmt":"2014-06-29T02:26:26","guid":{"rendered":"http:\/\/mikeconley.ca\/blog\/?p=2511"},"modified":"2023-12-20T16:25:12","modified_gmt":"2023-12-20T21:25:12","slug":"australis-performance-post-mortem-summary","status":"publish","type":"post","link":"https:\/\/mikeconley.ca\/blog\/2014\/06\/28\/australis-performance-post-mortem-summary\/","title":{"rendered":"Australis Performance Post-mortem Summary"},"content":{"rendered":"<p>Over the last few months, I&#8217;ve been talking about all of the work we put into making Australis feel fast when it shipped in Firefox 29.<\/p>\n<p>I talked about <a href=\"http:\/\/mikeconley.ca\/blog\/2013\/11\/21\/australis-performance-post-mortem-part-1\/\">where we started<\/a> with our performance work, and how we grappled with <a href=\"http:\/\/mikeconley.ca\/blog\/2013\/12\/01\/australis-performance-post-mortem-part-2-ts_paint-and-t_paint\/\">the ts_paint and tpaint performance (&#8220;talos&#8221;) tests<\/a>. After that, I talked a bit about t<a href=\"http:\/\/mikeconley.ca\/blog\/2013\/12\/14\/australis-performance-post-mortem-part-3-as-good-as-our-tools\/\">he excellent tools we have (and ones we developed ourselves)<\/a> to make finding our performance bottlenecks easier.<\/p>\n<p>After a brief delay, I rounded out the series by talking about <a href=\"http:\/\/mikeconley.ca\/blog\/2014\/05\/14\/australis-performance-post-mortem-part-4-on-tab-animation\/\">our tab animation performance work<\/a>, and the <a href=\"http:\/\/mikeconley.ca\/blog\/2014\/06\/19\/australis-performance-post-mortem-part-5-the-customize-mode-transition\/\">customization transition performance work<\/a>.<\/p>\n<p>I think over the course of working on these things, I&#8217;ve learned quite a bit about performance work in general. If I had to distill it down to a few tidbits, it&#8217;d be:<\/p>\n<ul>\n<li>Measure first to get a baseline, then try to improve. (Alternatively, &#8220;you can&#8217;t improve what you can&#8217;t measure&#8221;)<\/li>\n<li>Finding the solutions to performance problems is usually the easy part. The hard part is finding and isolating the problems to begin with.<\/li>\n<li>While performance work can be a bit of a grind, users <em>do feel and appreciate<\/em> the efforts. It&#8217;s totally worth it.<\/li>\n<\/ul>\n<p>So that&#8217;s it on the series. Enjoy your zippy Firefox!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Over the last few months, I&#8217;ve been talking about all of the work we put into making Australis feel fast when it shipped in Firefox 29. I talked about where we started with our performance work, and how we grappled with the ts_paint and tpaint performance (&#8220;talos&#8221;) tests. After that, I talked a bit about [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[5,874,861],"tags":[1041,1085,125,35,1044,1087,1086,1054,1055],"class_list":["post-2511","post","type-post","status-publish","format-standard","hentry","category-computer-science","category-firefox-mozilla-2","category-mozilla-2","tag-australis","tag-cart","tag-firefox","tag-mozilla","tag-performance","tag-summary","tag-tart","tag-tpaint","tag-ts_paint"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/prmTy-Ev","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2511","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/comments?post=2511"}],"version-history":[{"count":1,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2511\/revisions"}],"predecessor-version":[{"id":2512,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2511\/revisions\/2512"}],"wp:attachment":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/media?parent=2511"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/categories?post=2511"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/tags?post=2511"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}