-
Notifications
You must be signed in to change notification settings - Fork 20
/
budgets.html
63 lines (50 loc) · 4.08 KB
/
budgets.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
---
title: Performance Budgets
---
<div class="jumbotron">
<h1>Performance Budgets</h1>
</div>
<div class="panel panel-info float-right float-half">
<div class="panel-heading"><h3 class="panel-title">Note about Performance Budgets</h3></div>
<div class="panel-body">
<p>This is just as much a shift in workplace culture as it is process. Sometimes your client or product owner cannot or will not prioritize performance, so even with a warning system in place, you might not be afforded the time to fix it.</p>
<a class="btn btn-info" href="https://www.youtube.com/watch?v=yqejmZrtmNg">Watch video about Performance Budgets</a>
</div>
</div>
<p>The main difficulty most teams overcome is actually putting performance front and center during a normal workflow. Many problems are much harder to solve after weeks of work have been built on top of them. One way of finding problems early and often is the use of a <strong>performance budget</strong>.</p>
<p>Just like a monetary budget, a performance budget places limits on your site, and as you develop features the budget keeps the site in check.</p>
<p>
<a class="btn btn-primary" href="http://www.timkadlec.com/2014/11/performance-budget-metrics/">Performance budget metrics</a>
<a class="btn btn-primary" href="http://danielmall.com/articles/how-to-make-a-performance-budget/">How to make a performance budget</a>
</p>
<div class="page-header">
<h2>Types of budgets</h2>
</div>
<p><strong class="def">Time limits</strong> are a simple but effective metric that can be measured. Most any event can be listened for in the browser, and there are even whole Web APIs dedicated to performance timing.</p>
<p><strong class="def">Requests</strong> are a simple thing to measure but might not always tell the whole story. For instance, you could place a limit of four CSS requests, but if one of them has 250K of inline base64 data added during development, it will not trigger a warning as long as you still only have four CSS files.</p>
<p><strong class="def">File size</strong> of your page as a whole is always something good to keep in mind, especially since most mobile data plans have download limits. A heavy site costs your users money! WebPageTest includes a <abbr title="US Dollar">$</abbr> indicator on every results page letting you see an estimate of how much a single page load of your site costs in various countries.</p>
<p><strong class="def">Milestones</strong> are specific to your website or app. For example, Twitter has a "time to first tweet" milestone, meaning the measure performance based on how soon the user can read content.</p>
<p>
<strong class="def">Speed Index</strong> is a metric invented by WebPageTest.org, and combines many factors together which measure "visual completeness" and are able to factor in things like FOUT, giving better scores to sites that are progressively enhanced to be flexible and fault tolerant.<br><br>
Checking the Speed Index of various devices gives one of the most reliable indicators of real-world performance. It is also quick to reveal the performance impact of common sources of bloat, such as a slideshow at the top of a homepage. For that reason it can be a very effective bargaining tool during design or product discussions.
</p>
<p><a class="btn btn-primary" href="https://sites.google.com/a/webpagetest.org/docs/using-webpagetest/metrics/speed-index">Read Speed Index docs</a></p>
<div class="page-header">
<h2>Tools</h2>
</div>
<div class="tools col2">
{% for tool in site.budgets %}
{% if tool.type == 'tool' %}{% include list-tools.html %}{% endif %}
{% endfor %}
</div>
<div class="panel panel-info float-left float-half">
<div class="panel-heading"><h3 class="panel-title">Find More Tools</h3></div>
<div class="panel-body"><p>You can see a large collection of curated tools, articles, and tutorials at <a href="http://perf-tooling.today/tools">perf-tooling.today</a></p></div>
</div>
<div class="page-header">
<h2>Activities</h2>
</div>
{% include goals-codebase.html %}
{% for activity in site.budgets %}
{% if activity.type == 'activity' %}{% include list-tasks.html %}{% endif %}
{% endfor %}