{"id":2391,"date":"2013-11-21T13:13:47","date_gmt":"2013-11-21T18:13:47","guid":{"rendered":"http:\/\/mikeconley.ca\/blog\/?p=2391"},"modified":"2023-12-20T16:25:12","modified_gmt":"2023-12-20T21:25:12","slug":"australis-performance-post-mortem-part-1","status":"publish","type":"post","link":"https:\/\/mikeconley.ca\/blog\/2013\/11\/21\/australis-performance-post-mortem-part-1\/","title":{"rendered":"Australis Performance Post-mortem Part 1: Where We Started"},"content":{"rendered":"<h2>Getting to the merge<\/h2>\n<p>Last Monday, November 18th, Australis merged into <a href=\"http:\/\/nightly.mozilla.org\/\">our Nightly release channel<\/a>, meaning lots of people are getting to try it and give us feedback. It&#8217;s been an exciting week, and we&#8217;re all very pleased with the response so far!<\/p>\n<p>Up until then, if you wanted to try Australis, you had to use the Nightlies from the UX branch. If you followed along on the UX branch, you&#8217;ll know that the tabs and the customization work have been in a pretty steady state for the last few months.<\/p>\n<p>So what was the hold up? Why did it take so long to get to the merge?<\/p>\n<p>Gather round folks, I have a story to tell.<\/p>\n<h2>Some terminology<\/h2>\n<p>I&#8217;m going to be batting around a few terms here, and some people will understand them right away, and some people won&#8217;t, so I&#8217;ll just spell them out here, in no particular order:<\/p>\n<dl>\n<dt><em>Australis<\/em><\/dt>\n<dd>If at this point you&#8217;re still not sure what I mean by Australis, you might want to check out <a title=\"Australis landing post on the UX blog\" href=\"https:\/\/blog.mozilla.org\/ux\/2013\/11\/australis-is-landing-in-firefox-nightly\/\" target=\"_blank\" rel=\"noopener\">this blog post and the accompanying video.<\/a><\/dd>\n<dt><em>mozilla-central<\/em><\/dt>\n<dd>mozilla-central, in this instance, refers to code that did not have the Australis changes in them. In the grand scheme of things, mozilla-central was where non-Australis code went, and then we&#8217;d merge those changes into the UX branch.<\/dd>\n<dt><em>UX branch<\/em><\/dt>\n<dd>The UX branch was where we were storing all of the Australis code.<\/dd>\n<dt><em>Talos<\/em><\/dt>\n<dd>Talos is a series of tests that we can run against a build of Firefox to measure the performance of different things &#8211; for example, how long it takes for a window to be opened. As of this writing, Talos tests for Desktop Firefox are run on Ubuntu Linux 12.04, OS X (10.6, 10.7 and 10.8), and Windows (XP, 7 and 8).<\/dd>\n<\/dl>\n<h2>Where we started from<\/h2>\n<p>Let&#8217;s rewind a bunch of months. Let&#8217;s go to about early June, 2013. At this time, the curvy tab work was essentially finished on Windows, and had been ported to OS X and Linux. The customization code was still being hacked on, but we felt like we were in a pretty decent place &#8211; the team felt like we were ready to merge into mozilla-central to get some real user feedback and testing.<\/p>\n<p>The problem was that up until that point, we hadn&#8217;t been running the Talos tests on the UX Branch, which means we didn&#8217;t really have a good idea about how we were performing in comparison to mozilla-central.<\/p>\n<p>And then we turned the Talos tests on. Data started to flow in, and it wasn&#8217;t happy data. In particular, we were regressing pretty badly on two tests: ts_paint and tpaint.<\/p>\n<dl>\n<dt><em>ts_paint<\/em><\/dt>\n<dd>this test measures how long it takes for Firefox to paint the first window on startup.<\/dd>\n<dt><em>tpaint<\/em><\/dt>\n<dd>this test measures how long it takes for Firefox to paint a newly opened window from a Firefox that is already running<\/dd>\n<\/dl>\n<p>Before I show you this data, I should clear some things up:\u00a0 as mentioned above, we run these Talos tests on a bunch of operating systems, and a variety of operating system versions. I don&#8217;t want to bog this post down with too many charts, so I&#8217;m going to extract a chart for each operating system, and forgo breaking it down by operating system version. Suffice it to say that the regressions were pretty consistent from version to version.<\/p>\n<p>Also, in each of these graphs, green represents mozilla-central, and red represents the UX branch. Up is bad (slower). Down is good (faster).<\/p>\n<p>Anyhow, here&#8217;s what we saw:<\/p>\n<h3>ts_paint<\/h3>\n<div id=\"attachment_2399\" style=\"width: 826px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Windows-XP-ts_paint-start.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2399\" data-attachment-id=\"2399\" data-permalink=\"https:\/\/mikeconley.ca\/blog\/2013\/11\/21\/australis-performance-post-mortem-part-1\/windows-xp-ts_paint-start\/\" data-orig-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Windows-XP-ts_paint-start.png\" data-orig-size=\"816,348\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"Windows XP &#8211; ts_paint regression\" data-image-description=\"&lt;p&gt;Windows XP &#8211; ts_paint regression&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Windows XP &#8211; ts_paint regression&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Windows-XP-ts_paint-start-300x127.png\" data-large-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Windows-XP-ts_paint-start.png\" class=\"size-full wp-image-2399\" src=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Windows-XP-ts_paint-start.png\" alt=\"Windows XP - ts_paint regression\" width=\"816\" height=\"348\" srcset=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Windows-XP-ts_paint-start.png 816w, https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Windows-XP-ts_paint-start-300x127.png 300w\" sizes=\"auto, (max-width: 816px) 100vw, 816px\" \/><\/a><p id=\"caption-attachment-2399\" class=\"wp-caption-text\">Windows XP &#8211; ts_paint regression<\/p><\/div>\n<div id=\"attachment_2401\" style=\"width: 817px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Linux-32-ts_paint-start.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2401\" data-attachment-id=\"2401\" data-permalink=\"https:\/\/mikeconley.ca\/blog\/2013\/11\/21\/australis-performance-post-mortem-part-1\/linux-32-ts_paint-start\/\" data-orig-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Linux-32-ts_paint-start.png\" data-orig-size=\"807,351\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"Linux 32 &#8211; ts_paint regression\" data-image-description=\"&lt;p&gt;Linux 32 &#8211; ts_paint regression&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Linux 32 &#8211; ts_paint regression&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Linux-32-ts_paint-start-300x130.png\" data-large-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Linux-32-ts_paint-start.png\" class=\"size-full wp-image-2401\" src=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Linux-32-ts_paint-start.png\" alt=\"Linux 32 - ts_paint regression\" width=\"807\" height=\"351\" srcset=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Linux-32-ts_paint-start.png 807w, https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Linux-32-ts_paint-start-300x130.png 300w\" sizes=\"auto, (max-width: 807px) 100vw, 807px\" \/><\/a><p id=\"caption-attachment-2401\" class=\"wp-caption-text\">Ubuntu 12.04 &#8211; ts_paint regression<\/p><\/div>\n<div id=\"attachment_2402\" style=\"width: 821px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/OSX-10.6-ts_paint-start.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2402\" data-attachment-id=\"2402\" data-permalink=\"https:\/\/mikeconley.ca\/blog\/2013\/11\/21\/australis-performance-post-mortem-part-1\/osx-10-6-ts_paint-start\/\" data-orig-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/OSX-10.6-ts_paint-start.png\" data-orig-size=\"811,349\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"OSX 10.6 &#8211; ts_paint regression\" data-image-description=\"&lt;p&gt;OSX 10.6 &#8211; ts_paint regression&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;OSX 10.6 &#8211; ts_paint regression&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/OSX-10.6-ts_paint-start-300x129.png\" data-large-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/OSX-10.6-ts_paint-start.png\" class=\"size-full wp-image-2402\" src=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/OSX-10.6-ts_paint-start.png\" alt=\"OSX 10.6 - ts_paint regression\" width=\"811\" height=\"349\" srcset=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/OSX-10.6-ts_paint-start.png 811w, https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/OSX-10.6-ts_paint-start-300x129.png 300w\" sizes=\"auto, (max-width: 811px) 100vw, 811px\" \/><\/a><p id=\"caption-attachment-2402\" class=\"wp-caption-text\">OSX 10.6 &#8211; ts_paint regression<\/p><\/div>\n<h3><\/h3>\n<h3>tpaint<\/h3>\n<div id=\"attachment_2398\" style=\"width: 837px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Windows-XP-tpaint-start.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2398\" data-attachment-id=\"2398\" data-permalink=\"https:\/\/mikeconley.ca\/blog\/2013\/11\/21\/australis-performance-post-mortem-part-1\/windows-xp-tpaint-start\/\" data-orig-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Windows-XP-tpaint-start.png\" data-orig-size=\"827,356\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"Windows XP &#8211; tpaint regression\" data-image-description=\"&lt;p&gt;Windows XP &#8211; tpaint regression&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Windows XP &#8211; tpaint regression&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Windows-XP-tpaint-start-300x129.png\" data-large-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Windows-XP-tpaint-start.png\" class=\"size-full wp-image-2398\" src=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Windows-XP-tpaint-start.png\" alt=\"Windows XP - tpaint regression\" width=\"827\" height=\"356\" srcset=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Windows-XP-tpaint-start.png 827w, https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Windows-XP-tpaint-start-300x129.png 300w\" sizes=\"auto, (max-width: 827px) 100vw, 827px\" \/><\/a><p id=\"caption-attachment-2398\" class=\"wp-caption-text\">Windows XP &#8211; tpaint regression<\/p><\/div>\n<div id=\"attachment_2400\" style=\"width: 820px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Linux-32-tpaint-start.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2400\" data-attachment-id=\"2400\" data-permalink=\"https:\/\/mikeconley.ca\/blog\/2013\/11\/21\/australis-performance-post-mortem-part-1\/linux-32-tpaint-start\/\" data-orig-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Linux-32-tpaint-start.png\" data-orig-size=\"810,358\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"Linux 32 &#8211; tpaint regression\" data-image-description=\"&lt;p&gt;Linux 32 &#8211; tpaint regression&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;Linux 32 &#8211; tpaint regression&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Linux-32-tpaint-start-300x132.png\" data-large-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Linux-32-tpaint-start.png\" class=\"size-full wp-image-2400\" src=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Linux-32-tpaint-start.png\" alt=\"Linux 32 - tpaint regression\" width=\"810\" height=\"358\" srcset=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Linux-32-tpaint-start.png 810w, https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/Linux-32-tpaint-start-300x132.png 300w\" sizes=\"auto, (max-width: 810px) 100vw, 810px\" \/><\/a><p id=\"caption-attachment-2400\" class=\"wp-caption-text\">Ubuntu 12.04 &#8211; tpaint regression<\/p><\/div>\n<div id=\"attachment_2403\" style=\"width: 831px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/OSX-10.6-tpaint-start.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2403\" data-attachment-id=\"2403\" data-permalink=\"https:\/\/mikeconley.ca\/blog\/2013\/11\/21\/australis-performance-post-mortem-part-1\/osx-10-6-tpaint-start\/\" data-orig-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/OSX-10.6-tpaint-start.png\" data-orig-size=\"821,349\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"OSX 10.6 &#8211; tpaint regression\" data-image-description=\"&lt;p&gt;OSX 10.6 &#8211; tpaint regression&lt;\/p&gt;\n\" data-image-caption=\"&lt;p&gt;OSX 10.6 &#8211; tpaint regression&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/OSX-10.6-tpaint-start-300x127.png\" data-large-file=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/OSX-10.6-tpaint-start.png\" class=\"size-full wp-image-2403\" src=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/OSX-10.6-tpaint-start.png\" alt=\"OSX 10.6 - tpaint regression\" width=\"821\" height=\"349\" srcset=\"https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/OSX-10.6-tpaint-start.png 821w, https:\/\/mikeconley.ca\/blog\/wp-content\/uploads\/2013\/11\/OSX-10.6-tpaint-start-300x127.png 300w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><\/a><p id=\"caption-attachment-2403\" class=\"wp-caption-text\">OSX 10.6 &#8211; tpaint regression<\/p><\/div>\n<h2><\/h2>\n<h2>Ouch<\/h2>\n<p>The team has been working like crazy to make Firefox look and feel faster. Hitting a regression like this blows.<\/p>\n<p>It&#8217;s also flat out unacceptable to have a regression like this unless there&#8217;s a <em>really really good reason for it.<\/em><\/p>\n<p>So we had to investigate. What was making us slow? What had we done wrong?<\/p>\n<p><a href=\"https:\/\/mikeconley.ca\/blog\/2013\/12\/01\/australis-performance-post-mortem-part-2-ts_paint-and-t_paint\/\">Find out in Part 2.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Getting to the merge Last Monday, November 18th, Australis merged into our Nightly release channel, meaning lots of people are getting to try it and give us feedback. It&#8217;s been an exciting week, and we&#8217;re all very pleased with the response so far! Up until then, if you wanted to try Australis, you had to [&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,79],"tags":[1041,125,35,1052,1044,1042,1053],"class_list":["post-2391","post","type-post","status-publish","format-standard","hentry","category-computer-science","category-firefox-mozilla-2","category-mozilla-2","category-technology","tag-australis","tag-firefox","tag-mozilla","tag-perf","tag-performance","tag-tabs","tag-talos"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/prmTy-Cz","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2391","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=2391"}],"version-history":[{"count":17,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2391\/revisions"}],"predecessor-version":[{"id":3095,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/posts\/2391\/revisions\/3095"}],"wp:attachment":[{"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/media?parent=2391"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/categories?post=2391"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikeconley.ca\/blog\/wp-json\/wp\/v2\/tags?post=2391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}