sitespeed.io 33.2.0 → 33.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # CHANGELOG - sitespeed.io (we use [semantic versioning](https://semver.org))
2
2
 
3
+ ## 33.3.0 - 2024-03-16
4
+ ### Added
5
+ * Show Long Animation frames (enabled in Chrome 123) [#4180](https://github.com/sitespeedio/sitespeed.io/pull/4108). Using the timeline/profiling is still best doing your tests but long animation frames can help you if you do not have it turned on or familiar with thart data in RUM. Please create an issue if you have any ideas on how we shoudl display the metrics/information!
6
+ * Show CPU power consumption (when using Firefox) [#4104](https://github.com/sitespeedio/sitespeed.io/pull/4104). You can try it with: `sitespeed.io -b firefox -n 1 --firefox.geckoProfiler --firefox.geckoProfilerParams.features "power" --firefox.powerConsumption https://www.sitespeed.io/`
7
+
8
+ ### Fixed
9
+ * Updated to [Browsertime 21.5.3](https://github.com/sitespeedio/browsertime/blob/main/CHANGELOG.md#2153---2024-03-12) containing various bug fixes.
10
+
3
11
  ## 33.2.0 - 2024-03-12
4
12
  ### Added
5
13
  * Updated to Browsertime 21.5.0 in [#4103](https://github.com/sitespeedio/sitespeed.io/pull/4103) also included changes released in 21.4.0.
package/README.md CHANGED
@@ -209,7 +209,7 @@ We welcome contributions from the community! Whether you're fixing a bug, adding
209
209
  5. **Test**: Run tests to ensure everything works as expected.
210
210
  6. **Submit a Pull Request**: Push your changes to your fork and submit a pull request to the main repository.
211
211
 
212
- Before contributing, please read our [CONTRIBUTING.md](.gitub/CONTRIBUTING.md) for more detailed information on how to contribute.
212
+ Before contributing, please read our [CONTRIBUTING.md](.github/CONTRIBUTING.md) for more detailed information on how to contribute.
213
213
 
214
214
  # Reporting Issues
215
215
  Found a bug or have a feature request? Please use the [GitHub Issues](https://github.com/sitespeedio/sitespeed.io/issues) to report them. Be sure to check existing issues to avoid duplicates.
@@ -356,6 +356,11 @@ export default class BrowsertimePlugin extends SitespeedioPlugin {
356
356
  run.cpu = result[resultIndex].cpu[runIndex];
357
357
  }
358
358
 
359
+ if (result[resultIndex].powerConsumption) {
360
+ run.powerConsumption =
361
+ result[resultIndex].powerConsumption[runIndex];
362
+ }
363
+
359
364
  if (result[resultIndex].memory) {
360
365
  run.memory = result[resultIndex].memory[runIndex];
361
366
  }
@@ -66,6 +66,11 @@ block content
66
66
  tr
67
67
  td Memory
68
68
  td #{h.size.format(memory)}
69
+ - cpuPower = get(d, 'browsertime.run.cpuConsumption')
70
+ if cpuConsumption
71
+ tr
72
+ td Firefox CPU power consumption
73
+ td #{cpuConsumption} µWh
69
74
  - requests = get(d, 'pagexray.run.requests')
70
75
  if (requests)
71
76
  tr
@@ -10,6 +10,7 @@ if browsertime
10
10
  - const custom = medianRun ? pageInfo.data.browsertime.pageSummary.browserScripts[medianRun.runIndex - 1].custom : pageInfo.data.browsertime.run.custom
11
11
  - const cdp = medianRun ? pageInfo.data.browsertime.pageSummary.cdp[medianRun.runIndex - 1] : pageInfo.data.browsertime.run.cdp
12
12
  - const renderBlocking = medianRun ? pageInfo.data.browsertime.pageSummary.renderBlocking[medianRun.runIndex - 1] : pageInfo.data.browsertime.run.renderBlocking
13
+ - const loaf = medianRun ? pageInfo.data.browsertime.pageSummary.browserScripts[medianRun.runIndex - 1].pageinfo.loaf : pageInfo.data.browsertime.run.pageinfo.loaf
13
14
 
14
15
  small
15
16
  | |
@@ -27,6 +28,9 @@ if browsertime
27
28
  if timings.interactionToNextPaint
28
29
  a(href='#interactionToNextPaint') Interaction To Next Paint
29
30
  |  | 
31
+ if loaf
32
+ a(href='#longAnimationFrames') Long Aninimation Frames
33
+ |  | 
30
34
  if timings.elementTimings && Object.keys(timings.elementTimings).length > 0
31
35
  a(href='#elementTimings') Element Timings
32
36
  |  | 
@@ -271,6 +275,7 @@ if browsertime
271
275
  include ./firstInput.pug
272
276
  include ./layoutShift.pug
273
277
  include ./inp.pug
278
+ include ./loaf.pug
274
279
  include ./elementTimings.pug
275
280
  include ./serverTimings.pug
276
281
 
@@ -0,0 +1,53 @@
1
+ if loaf
2
+ a#longAnimationFrames
3
+ h3 Long Animation Frames
4
+ p Read more about the Long Animation Frames API here
5
+ a(href='https://developer.chrome.com/docs/web-platform/long-animation-frames') here.
6
+ p The top 10 longest animation frames entries
7
+
8
+ each oneLoaf in loaf
9
+ table
10
+ tr
11
+ th Blocking duration
12
+ th Work duration
13
+ th Render duration
14
+ th PreLayout Duration
15
+ th Style And Layout Duration
16
+ tr
17
+ td #{h.time.ms(h.decimals(oneLoaf.blockingDuration))}
18
+ td #{h.time.ms(h.decimals(oneLoaf.workDuration))}
19
+ td #{h.time.ms(h.decimals(oneLoaf.renderDuration))}
20
+ td #{h.time.ms(h.decimals(oneLoaf.preLayoutDuration))}
21
+ td #{h.time.ms(h.decimals(oneLoaf.styleAndLayoutDuration))}
22
+
23
+ if oneLoaf.scripts.length > 0
24
+ each theScript in oneLoaf.scripts
25
+ if theScript.sourceURL !== ''
26
+ tr
27
+ td.url.assetsurl(colspan=5)
28
+ a(href=theScript.sourceURL)= theScript.sourceURL
29
+ tr
30
+ td(colspan=5)
31
+ if theScript.forcedStyleAndLayoutDuration !== 0
32
+ p Forced Style And Layout Duration: #{h.time.ms(h.decimals(theScript.forcedStyleAndLayoutDuration))}
33
+ p
34
+ b Invoker:
35
+ | #{theScript.invoker}
36
+ br
37
+ b Invoker Type:
38
+ | #{theScript.invokerType}
39
+ br
40
+ if theScript.sourceFunctionName
41
+ b Source Function Name:
42
+ | #{theScript.sourceFunctionName}
43
+ br
44
+ if theScript.windowAttribution
45
+ b Window attribution:
46
+ | #{theScript.windowAttribution}
47
+ br
48
+ if theScript.sourceCharPosition
49
+ b Source char position:
50
+ | #{theScript.sourceCharPosition}
51
+ else
52
+ tr
53
+ td(colspan=5) No availible script information.
@@ -96,6 +96,11 @@ block content
96
96
  tr
97
97
  td Memory
98
98
  td #{h.size.format(memory)}
99
+ - powerConsumption = get(d, 'browsertime.pageSummary.statistics.powerConsumption.median')
100
+ if powerConsumption
101
+ tr
102
+ td Firefox CPU Power Consumption
103
+ td #{powerConsumption} µWh
99
104
  - requests = get(d, 'pagexray.pageSummary.requests')
100
105
  if requests
101
106
  tr
@@ -142,7 +147,6 @@ block content
142
147
  tr
143
148
  td Cumulative Layout Shift (CLS) [median]
144
149
  td #{cls.toFixed(2)}
145
- - tbt = get(d, 'browsertime.pageSummary.statistics.cpu.longTasks.totalBlockingTime.median')
146
150
  if inp
147
151
  tr
148
152
  td Interaction To Next Paint (INP) [median]
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "sitespeed.io",
3
- "version": "33.2.0",
3
+ "version": "33.3.0",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "sitespeed.io",
9
- "version": "33.2.0",
9
+ "version": "33.3.0",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "@google-cloud/storage": "6.9.5",
@@ -15,7 +15,7 @@
15
15
  "@tgwf/co2": "0.14.2",
16
16
  "aws-sdk": "2.1327.0",
17
17
  "axe-core": "4.8.2",
18
- "browsertime": "21.5.0",
18
+ "browsertime": "21.5.4",
19
19
  "cli-color": "2.0.3",
20
20
  "coach-core": "8.0.2",
21
21
  "concurrent-queue": "7.0.2",
@@ -1759,9 +1759,9 @@
1759
1759
  }
1760
1760
  },
1761
1761
  "node_modules/browsertime": {
1762
- "version": "21.5.0",
1763
- "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-21.5.0.tgz",
1764
- "integrity": "sha512-9t10vVc9/WolALi4cXsTvQ0Y+SWf2j2I5SMUtWC/uFADKJAaZauEbO+EcZTqz6ezzNOxD1AoblxPO5uMbgWtug==",
1762
+ "version": "21.5.4",
1763
+ "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-21.5.4.tgz",
1764
+ "integrity": "sha512-lHM5qGWdGS9DiM4iofkih03dVLLARZwduaxYkFW8XTEk/j4GkijvzW5OO9oqFSiA6Xyxn4fDiQcYaboNLvWNzA==",
1765
1765
  "dependencies": {
1766
1766
  "@cypress/xvfb": "1.2.4",
1767
1767
  "@devicefarmer/adbkit": "3.2.6",
@@ -10601,9 +10601,9 @@
10601
10601
  }
10602
10602
  },
10603
10603
  "browsertime": {
10604
- "version": "21.5.0",
10605
- "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-21.5.0.tgz",
10606
- "integrity": "sha512-9t10vVc9/WolALi4cXsTvQ0Y+SWf2j2I5SMUtWC/uFADKJAaZauEbO+EcZTqz6ezzNOxD1AoblxPO5uMbgWtug==",
10604
+ "version": "21.5.4",
10605
+ "resolved": "https://registry.npmjs.org/browsertime/-/browsertime-21.5.4.tgz",
10606
+ "integrity": "sha512-lHM5qGWdGS9DiM4iofkih03dVLLARZwduaxYkFW8XTEk/j4GkijvzW5OO9oqFSiA6Xyxn4fDiQcYaboNLvWNzA==",
10607
10607
  "requires": {
10608
10608
  "@cypress/xvfb": "1.2.4",
10609
10609
  "@devicefarmer/adbkit": "3.2.6",
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "sitespeed.io": "./bin/sitespeed.js",
6
6
  "sitespeed.io-wpr": "./bin/browsertimeWebPageReplay.js"
7
7
  },
8
- "version": "33.2.0",
8
+ "version": "33.3.0",
9
9
  "description": "sitespeed.io is an open-source tool for comprehensive web performance analysis, enabling you to test, monitor, and optimize your website’s speed using real browsers in various environments.",
10
10
  "keywords": [
11
11
  "performance",
@@ -85,7 +85,7 @@
85
85
  "@tgwf/co2": "0.14.2",
86
86
  "aws-sdk": "2.1327.0",
87
87
  "axe-core": "4.8.2",
88
- "browsertime": "21.5.0",
88
+ "browsertime": "21.5.4",
89
89
  "coach-core": "8.0.2",
90
90
  "cli-color": "2.0.3",
91
91
  "concurrent-queue": "7.0.2",