@@ -15,6 +15,7 @@ Node.js supports the following [Web Performance APIs][]:
15
15
* [ High Resolution Time] [ ]
16
16
* [ Performance Timeline] [ ]
17
17
* [ User Timing] [ ]
18
+ * [ Resource Timing] [ ]
18
19
19
20
``` js
20
21
const { PerformanceObserver , performance } = require (' node:perf_hooks' );
@@ -66,6 +67,17 @@ added: v16.7.0
66
67
If ` name ` is not provided, removes all ` PerformanceMeasure ` objects from the
67
68
Performance Timeline. If ` name ` is provided, removes only the named mark.
68
69
70
+ ### ` performance.clearResourceTimings([name]) `
71
+
72
+ <!-- YAML
73
+ added: REPLACEME
74
+ -->
75
+
76
+ * ` name ` {string}
77
+
78
+ If ` name ` is not provided, removes all ` PerformanceResourceTiming ` objects from
79
+ the Resource Timeline. If ` name ` is provided, removes only the named resource.
80
+
69
81
### ` performance.eventLoopUtilization([utilization1[, utilization2]]) `
70
82
71
83
<!-- YAML
@@ -198,6 +210,33 @@ and can be queried with `performance.getEntries`,
198
210
observation is performed, the entries should be cleared from the global
199
211
Performance Timeline manually with ` performance.clearMarks ` .
200
212
213
+ ### \` performance.markResourceTiming(timingInfo, requestedUrl, initiatorType,
214
+
215
+ global, cacheMode)\`
216
+
217
+ <!-- YAML
218
+ added: REPLACEME
219
+ -->
220
+
221
+ * ` timingInfo ` {Object} [ Fetch Timing Info] [ ]
222
+ * ` requestedUrl ` {string} The resource url
223
+ * ` initiatorType ` {string} The initiator name, e.g: 'fetch'
224
+ * ` global ` {Object}
225
+ * ` cacheMode ` {string} The cache mode must be an empty string ('') or 'local'
226
+
227
+ _ This property is an extension by Node.js. It is not available in Web browsers._
228
+
229
+ Creates a new ` PerformanceResourceTiming ` entry in the Resource Timeline. A
230
+ ` PerformanceResourceTiming ` is a subclass of ` PerformanceEntry ` whose
231
+ ` performanceEntry.entryType ` is always ` 'resource' ` . Performance resources
232
+ are used to mark moments in the Resource Timeline.
233
+
234
+ The created ` PerformanceMark ` entry is put in the global Resource Timeline
235
+ and can be queried with ` performance.getEntries ` ,
236
+ ` performance.getEntriesByName ` , and ` performance.getEntriesByType ` . When the
237
+ observation is performed, the entries should be cleared from the global
238
+ Performance Timeline manually with ` performance.clearResourceTimings ` .
239
+
201
240
### ` performance.measure(name[, startMarkOrOptions[, endMark]]) `
202
241
203
242
<!-- YAML
@@ -653,6 +692,188 @@ added: v8.5.0
653
692
The high resolution millisecond timestamp at which the V8 platform was
654
693
initialized.
655
694
695
+ ## Class: ` PerformanceResourceTiming `
696
+
697
+ <!-- YAML
698
+ added: REPLACEME
699
+ -->
700
+
701
+ * Extends: {PerformanceEntry}
702
+
703
+ Provides detailed network timing data regarding the loading of an application's
704
+ resources.
705
+
706
+ The constructor of this class is not exposed to users directly.
707
+
708
+ ### ` performanceResourceTiming.workerStart `
709
+
710
+ <!-- YAML
711
+ added: REPLACEME
712
+ -->
713
+
714
+ * {number}
715
+
716
+ The high resolution millisecond timestamp at immediately before dispatching
717
+ the ` fetch ` request. If the resource is not intercepted by a worker the property
718
+ will always return 0.
719
+
720
+ ### ` performanceResourceTiming.redirectStart `
721
+
722
+ <!-- YAML
723
+ added: REPLACEME
724
+ -->
725
+
726
+ * {number}
727
+
728
+ The high resolution millisecond timestamp that represents the start time
729
+ of the fetch which initiates the redirect.
730
+
731
+ ### ` performanceResourceTiming.redirectEnd `
732
+
733
+ <!-- YAML
734
+ added: REPLACEME
735
+ -->
736
+
737
+ * {number}
738
+
739
+ The high resolution millisecond timestamp that will be created immediately after
740
+ receiving the last byte of the response of the last redirect.
741
+
742
+ ### ` performanceResourceTiming.fetchStart `
743
+
744
+ <!-- YAML
745
+ added: REPLACEME
746
+ -->
747
+
748
+ * {number}
749
+
750
+ The high resolution millisecond timestamp immediately before the Node.js starts
751
+ to fetch the resource.
752
+
753
+ ### ` performanceResourceTiming.domainLookupStart `
754
+
755
+ <!-- YAML
756
+ added: REPLACEME
757
+ -->
758
+
759
+ * {number}
760
+
761
+ The high resolution millisecond timestamp immediately before the Node.js starts
762
+ the domain name lookup for the resource.
763
+
764
+ ### ` performanceResourceTiming.domainLookupEnd `
765
+
766
+ <!-- YAML
767
+ added: REPLACEME
768
+ -->
769
+
770
+ * {number}
771
+
772
+ The high resolution millisecond timestamp representing the time immediately
773
+ after the Node.js finished the domain name lookup for the resource.
774
+
775
+ ### ` performanceResourceTiming.connectStart `
776
+
777
+ <!-- YAML
778
+ added: REPLACEME
779
+ -->
780
+
781
+ * {number}
782
+
783
+ The high resolution millisecond timestamp representing the time immediately
784
+ before Node.js starts to establish the connection to the server to retrieve
785
+ the resource.
786
+
787
+ ### ` performanceResourceTiming.connectEnd `
788
+
789
+ <!-- YAML
790
+ added: REPLACEME
791
+ -->
792
+
793
+ * {number}
794
+
795
+ The high resolution millisecond timestamp representing the time immediately
796
+ after Node.js finishes establishing the connection to the server to retrieve
797
+ the resource.
798
+
799
+ ### ` performanceResourceTiming.secureConnectionStart `
800
+
801
+ <!-- YAML
802
+ added: REPLACEME
803
+ -->
804
+
805
+ * {number}
806
+
807
+ The high resolution millisecond timestamp representing the time immediately
808
+ before Node.js starts the handshake process to secure the current connection.
809
+
810
+ ### ` performanceResourceTiming.requestStart `
811
+
812
+ <!-- YAML
813
+ added: REPLACEME
814
+ -->
815
+
816
+ * {number}
817
+
818
+ The high resolution millisecond timestamp representing the time immediately
819
+ before Node.js receives the first byte of the response from the server.
820
+
821
+ ### ` performanceResourceTiming.responseEnd `
822
+
823
+ <!-- YAML
824
+ added: REPLACEME
825
+ -->
826
+
827
+ * {number}
828
+
829
+ The high resolution millisecond timestamp representing the time immediately
830
+ after Node.js receives the last byte of the resource or immediately before
831
+ the transport connection is closed, whichever comes first.
832
+
833
+ ### ` performanceResourceTiming.transferSize `
834
+
835
+ <!-- YAML
836
+ added: REPLACEME
837
+ -->
838
+
839
+ * {number}
840
+
841
+ A number representing the size (in octets) of the fetched resource. The size
842
+ includes the response header fields plus the response payload body.
843
+
844
+ ### ` performanceResourceTiming.encodedBodySize `
845
+
846
+ <!-- YAML
847
+ added: REPLACEME
848
+ -->
849
+
850
+ * {number}
851
+
852
+ A number representing the size (in octets) received from the fetch
853
+ (HTTP or cache), of the payload body, before removing any applied
854
+ content-codings.
855
+
856
+ ### ` performanceResourceTiming.decodedBodySize `
857
+
858
+ <!-- YAML
859
+ added: REPLACEME
860
+ -->
861
+
862
+ * {number}
863
+
864
+ A number representing the size (in octets) received from the fetch
865
+ (HTTP or cache), of the message body, after removing any applied
866
+ content-codings.
867
+
868
+ ### ` performanceResourceTiming.toJSON() `
869
+
870
+ <!-- YAML
871
+ added: REPLACEME
872
+ -->
873
+
874
+ Returns a ` object ` that is the JSON representation of the
875
+ ` PerformanceResourceTiming ` object
876
+
656
877
## Class: ` perf_hooks.PerformanceObserver `
657
878
658
879
### ` new PerformanceObserver(callback) `
@@ -1337,8 +1558,10 @@ dns.promises.resolve('localhost');
1337
1558
```
1338
1559
1339
1560
[ Async Hooks ] : async_hooks.md
1561
+ [ Fetch Timing Info ] : https://fetch.spec.whatwg.org/#fetch-timing-info
1340
1562
[ High Resolution Time ] : https://www.w3.org/TR/hr-time-2
1341
1563
[ Performance Timeline ] : https://w3c.github.io/performance-timeline/
1564
+ [ Resource Timing ] : https://www.w3.org/TR/resource-timing-2/
1342
1565
[ User Timing ] : https://www.w3.org/TR/user-timing/
1343
1566
[ Web Performance APIs ] : https://w3c.github.io/perf-timing-primer/
1344
1567
[ Worker threads ] : worker_threads.md#worker-threads
0 commit comments