lighthouse 12.1.0-dev.20240629 → 12.1.0-dev.20240701
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/core/audits/byte-efficiency/byte-efficiency-audit.d.ts +5 -7
- package/core/audits/byte-efficiency/byte-efficiency-audit.js +3 -6
- package/core/audits/byte-efficiency/render-blocking-resources.d.ts +3 -7
- package/core/audits/byte-efficiency/render-blocking-resources.js +10 -16
- package/core/audits/dobetterweb/uses-http2.d.ts +4 -6
- package/core/audits/dobetterweb/uses-http2.js +2 -5
- package/core/audits/long-tasks.d.ts +6 -6
- package/core/audits/long-tasks.js +4 -4
- package/core/audits/prioritize-lcp-image.d.ts +1 -1
- package/core/audits/uses-rel-preload.d.ts +4 -3
- package/core/audits/uses-rel-preload.js +8 -6
- package/core/computed/critical-request-chains.d.ts +4 -3
- package/core/computed/critical-request-chains.js +5 -4
- package/core/computed/document-urls.js +1 -1
- package/core/computed/load-simulator.d.ts +3 -4
- package/core/computed/load-simulator.js +1 -1
- package/core/computed/main-resource.js +1 -1
- package/core/computed/metrics/lantern-first-contentful-paint.d.ts +2 -4
- package/core/computed/metrics/lantern-first-contentful-paint.js +1 -3
- package/core/computed/metrics/lantern-interactive.d.ts +2 -4
- package/core/computed/metrics/lantern-interactive.js +1 -3
- package/core/computed/metrics/lantern-largest-contentful-paint.d.ts +2 -4
- package/core/computed/metrics/lantern-largest-contentful-paint.js +1 -3
- package/core/computed/metrics/lantern-max-potential-fid.d.ts +2 -4
- package/core/computed/metrics/lantern-max-potential-fid.js +1 -3
- package/core/computed/metrics/lantern-metric.d.ts +8 -8
- package/core/computed/metrics/lantern-metric.js +1 -1
- package/core/computed/metrics/lantern-speed-index.d.ts +2 -4
- package/core/computed/metrics/lantern-speed-index.js +1 -3
- package/core/computed/metrics/lantern-total-blocking-time.d.ts +2 -4
- package/core/computed/metrics/lantern-total-blocking-time.js +1 -3
- package/core/computed/metrics/total-blocking-time.js +1 -1
- package/core/computed/network-analysis.js +1 -1
- package/core/computed/page-dependency-graph.d.ts +3 -6
- package/core/computed/page-dependency-graph.js +3 -4
- package/core/computed/tbt-impact-tasks.js +2 -2
- package/core/lib/asset-saver.js +1 -1
- package/core/lib/lantern/lantern.d.ts +2 -19
- package/core/lib/lantern/lantern.js +2 -45
- package/core/lib/lantern-trace-saver.d.ts +4 -6
- package/core/lib/lantern-trace-saver.js +2 -3
- package/core/lib/navigation-error.js +2 -2
- package/core/lib/network-recorder.js +1 -1
- package/core/lib/network-request.d.ts +4 -4
- package/core/lib/network-request.js +2 -2
- package/package.json +2 -2
- package/tsconfig.json +0 -11
- package/types/artifacts.d.ts +2 -2
- package/types/gatherer.d.ts +4 -5
- package/core/lib/lantern/BaseNode.d.ts +0 -163
- package/core/lib/lantern/BaseNode.js +0 -369
- package/core/lib/lantern/BaseNode.test.js +0 -385
- package/core/lib/lantern/CpuNode.d.ts +0 -43
- package/core/lib/lantern/CpuNode.js +0 -99
- package/core/lib/lantern/LanternError.d.ts +0 -8
- package/core/lib/lantern/LanternError.js +0 -9
- package/core/lib/lantern/Metric.d.ts +0 -69
- package/core/lib/lantern/Metric.js +0 -137
- package/core/lib/lantern/NetworkNode.d.ts +0 -49
- package/core/lib/lantern/NetworkNode.js +0 -136
- package/core/lib/lantern/PageDependencyGraph.d.ts +0 -82
- package/core/lib/lantern/PageDependencyGraph.js +0 -610
- package/core/lib/lantern/PageDependencyGraph.test.js +0 -654
- package/core/lib/lantern/TBTUtils.d.ts +0 -44
- package/core/lib/lantern/TBTUtils.js +0 -76
- package/core/lib/lantern/TBTUtils.test.d.ts +0 -2
- package/core/lib/lantern/TBTUtils.test.js +0 -130
- package/core/lib/lantern/TraceEngineComputationData.d.ts +0 -25
- package/core/lib/lantern/TraceEngineComputationData.js +0 -466
- package/core/lib/lantern/metrics/FirstContentfulPaint.d.ts +0 -79
- package/core/lib/lantern/metrics/FirstContentfulPaint.js +0 -198
- package/core/lib/lantern/metrics/FirstContentfulPaint.test.js +0 -54
- package/core/lib/lantern/metrics/Interactive.d.ts +0 -20
- package/core/lib/lantern/metrics/Interactive.js +0 -109
- package/core/lib/lantern/metrics/Interactive.test.js +0 -56
- package/core/lib/lantern/metrics/LargestContentfulPaint.d.ts +0 -19
- package/core/lib/lantern/metrics/LargestContentfulPaint.js +0 -105
- package/core/lib/lantern/metrics/LargestContentfulPaint.test.js +0 -42
- package/core/lib/lantern/metrics/MaxPotentialFID.d.ts +0 -24
- package/core/lib/lantern/metrics/MaxPotentialFID.js +0 -91
- package/core/lib/lantern/metrics/MetricTestUtils.d.ts +0 -19
- package/core/lib/lantern/metrics/MetricTestUtils.js +0 -48
- package/core/lib/lantern/metrics/SpeedIndex.d.ts +0 -32
- package/core/lib/lantern/metrics/SpeedIndex.js +0 -142
- package/core/lib/lantern/metrics/SpeedIndex.test.js +0 -83
- package/core/lib/lantern/metrics/TotalBlockingTime.d.ts +0 -25
- package/core/lib/lantern/metrics/TotalBlockingTime.js +0 -125
- package/core/lib/lantern/metrics/__snapshots__/FirstContentfulPaint.test.js.snap +0 -11
- package/core/lib/lantern/metrics/__snapshots__/Interactive.test.js.snap +0 -17
- package/core/lib/lantern/metrics/metrics.d.ts +0 -9
- package/core/lib/lantern/metrics/metrics.js +0 -16
- package/core/lib/lantern/simulation/ConnectionPool.d.ts +0 -48
- package/core/lib/lantern/simulation/ConnectionPool.js +0 -152
- package/core/lib/lantern/simulation/ConnectionPool.test.js +0 -195
- package/core/lib/lantern/simulation/Constants.d.ts +0 -52
- package/core/lib/lantern/simulation/Constants.js +0 -48
- package/core/lib/lantern/simulation/DNSCache.d.ts +0 -42
- package/core/lib/lantern/simulation/DNSCache.js +0 -74
- package/core/lib/lantern/simulation/DNSCache.test.js +0 -72
- package/core/lib/lantern/simulation/NetworkAnalyzer.d.ts +0 -209
- package/core/lib/lantern/simulation/NetworkAnalyzer.js +0 -597
- package/core/lib/lantern/simulation/NetworkAnalyzer.test.js +0 -475
- package/core/lib/lantern/simulation/SimulationTimingMap.d.ts +0 -153
- package/core/lib/lantern/simulation/SimulationTimingMap.js +0 -219
- package/core/lib/lantern/simulation/Simulator.d.ts +0 -157
- package/core/lib/lantern/simulation/Simulator.js +0 -593
- package/core/lib/lantern/simulation/Simulator.test.js +0 -434
- package/core/lib/lantern/simulation/TCPConnection.test.d.ts +0 -2
- package/core/lib/lantern/simulation/TCPConnection.test.js +0 -374
- package/core/lib/lantern/simulation/TcpConnection.d.ts +0 -89
- package/core/lib/lantern/simulation/TcpConnection.js +0 -230
- package/core/lib/lantern/simulation/simulation.d.ts +0 -21
- package/core/lib/lantern/simulation/simulation.js +0 -28
- package/core/lib/lantern/types/lantern.d.ts +0 -256
- package/core/lib/lantern/types/lantern.js +0 -7
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2020 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import * as Lantern from '../lantern.js';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* @fileoverview
|
|
11
|
-
*
|
|
12
|
-
* This class encapsulates the type-related validation logic for moving timing information for nodes
|
|
13
|
-
* through the different simulation phases. Methods here ensure that the invariants of simulation hold
|
|
14
|
-
* as nodes are queued, partially simulated, and completed.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
/** @typedef {import('../BaseNode.js').Node} Node */
|
|
18
|
-
/** @typedef {import('../NetworkNode.js').NetworkNode} NetworkNode */
|
|
19
|
-
/** @typedef {import('../CpuNode.js').CPUNode} CpuNode */
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* @typedef NodeTimingComplete
|
|
23
|
-
* @property {number} startTime
|
|
24
|
-
* @property {number} endTime
|
|
25
|
-
* @property {number} queuedTime Helpful for debugging.
|
|
26
|
-
* @property {number} estimatedTimeElapsed
|
|
27
|
-
* @property {number} timeElapsed
|
|
28
|
-
* @property {number} timeElapsedOvershoot
|
|
29
|
-
* @property {number} bytesDownloaded
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
/** @typedef {Pick<NodeTimingComplete, 'queuedTime'>} NodeTimingQueued */
|
|
33
|
-
|
|
34
|
-
/** @typedef {NodeTimingQueued & Pick<NodeTimingComplete, 'startTime'|'timeElapsed'>} CpuNodeTimingStarted */
|
|
35
|
-
/** @typedef {CpuNodeTimingStarted & Pick<NodeTimingComplete, 'timeElapsedOvershoot'|'bytesDownloaded'>} NetworkNodeTimingStarted */
|
|
36
|
-
|
|
37
|
-
/** @typedef {CpuNodeTimingStarted & Pick<NodeTimingComplete, 'estimatedTimeElapsed'>} CpuNodeTimingInProgress */
|
|
38
|
-
/** @typedef {NetworkNodeTimingStarted & Pick<NodeTimingComplete, 'estimatedTimeElapsed'>} NetworkNodeTimingInProgress */
|
|
39
|
-
|
|
40
|
-
/** @typedef {CpuNodeTimingInProgress & Pick<NodeTimingComplete, 'endTime'>} CpuNodeTimingComplete */
|
|
41
|
-
/** @typedef {NetworkNodeTimingInProgress & Pick<NodeTimingComplete, 'endTime'> & {connectionTiming: ConnectionTiming}} NetworkNodeTimingComplete */
|
|
42
|
-
|
|
43
|
-
/** @typedef {NodeTimingQueued | CpuNodeTimingStarted | NetworkNodeTimingStarted | CpuNodeTimingInProgress | NetworkNodeTimingInProgress | CpuNodeTimingComplete | NetworkNodeTimingComplete} NodeTimingData */
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* @typedef ConnectionTiming A breakdown of network connection timings.
|
|
47
|
-
* @property {number} [dnsResolutionTime]
|
|
48
|
-
* @property {number} [connectionTime]
|
|
49
|
-
* @property {number} [sslTime]
|
|
50
|
-
* @property {number} timeToFirstByte
|
|
51
|
-
*/
|
|
52
|
-
|
|
53
|
-
class SimulatorTimingMap {
|
|
54
|
-
constructor() {
|
|
55
|
-
/** @type {Map<Node, NodeTimingData>} */
|
|
56
|
-
this._nodeTimings = new Map();
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/** @return {Array<Node>} */
|
|
60
|
-
getNodes() {
|
|
61
|
-
return Array.from(this._nodeTimings.keys());
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* @param {Node} node
|
|
66
|
-
* @param {{queuedTime: number}} values
|
|
67
|
-
*/
|
|
68
|
-
setReadyToStart(node, values) {
|
|
69
|
-
this._nodeTimings.set(node, values);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* @param {Node} node
|
|
74
|
-
* @param {{startTime: number}} values
|
|
75
|
-
*/
|
|
76
|
-
setInProgress(node, values) {
|
|
77
|
-
const nodeTiming = {
|
|
78
|
-
...this.getQueued(node),
|
|
79
|
-
startTime: values.startTime,
|
|
80
|
-
timeElapsed: 0,
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
this._nodeTimings.set(
|
|
84
|
-
node,
|
|
85
|
-
node.type === Lantern.BaseNode.TYPES.NETWORK
|
|
86
|
-
? {...nodeTiming, timeElapsedOvershoot: 0, bytesDownloaded: 0}
|
|
87
|
-
: nodeTiming
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* @param {Node} node
|
|
93
|
-
* @param {{endTime: number, connectionTiming?: ConnectionTiming}} values
|
|
94
|
-
*/
|
|
95
|
-
setCompleted(node, values) {
|
|
96
|
-
const nodeTiming = {
|
|
97
|
-
...this.getInProgress(node),
|
|
98
|
-
endTime: values.endTime,
|
|
99
|
-
connectionTiming: values.connectionTiming,
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
this._nodeTimings.set(node, nodeTiming);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* @param {CpuNode} node
|
|
107
|
-
* @param {{timeElapsed: number}} values
|
|
108
|
-
*/
|
|
109
|
-
setCpu(node, values) {
|
|
110
|
-
const nodeTiming = {
|
|
111
|
-
...this.getCpuStarted(node),
|
|
112
|
-
timeElapsed: values.timeElapsed,
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
this._nodeTimings.set(node, nodeTiming);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* @param {CpuNode} node
|
|
120
|
-
* @param {{estimatedTimeElapsed: number}} values
|
|
121
|
-
*/
|
|
122
|
-
setCpuEstimated(node, values) {
|
|
123
|
-
const nodeTiming = {
|
|
124
|
-
...this.getCpuStarted(node),
|
|
125
|
-
estimatedTimeElapsed: values.estimatedTimeElapsed,
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
this._nodeTimings.set(node, nodeTiming);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* @param {NetworkNode} node
|
|
133
|
-
* @param {{timeElapsed: number, timeElapsedOvershoot: number, bytesDownloaded: number}} values
|
|
134
|
-
*/
|
|
135
|
-
setNetwork(node, values) {
|
|
136
|
-
const nodeTiming = {
|
|
137
|
-
...this.getNetworkStarted(node),
|
|
138
|
-
timeElapsed: values.timeElapsed,
|
|
139
|
-
timeElapsedOvershoot: values.timeElapsedOvershoot,
|
|
140
|
-
bytesDownloaded: values.bytesDownloaded,
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
this._nodeTimings.set(node, nodeTiming);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* @param {NetworkNode} node
|
|
148
|
-
* @param {{estimatedTimeElapsed: number}} values
|
|
149
|
-
*/
|
|
150
|
-
setNetworkEstimated(node, values) {
|
|
151
|
-
const nodeTiming = {
|
|
152
|
-
...this.getNetworkStarted(node),
|
|
153
|
-
estimatedTimeElapsed: values.estimatedTimeElapsed,
|
|
154
|
-
};
|
|
155
|
-
|
|
156
|
-
this._nodeTimings.set(node, nodeTiming);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* @param {Node} node
|
|
161
|
-
* @return {NodeTimingQueued}
|
|
162
|
-
*/
|
|
163
|
-
getQueued(node) {
|
|
164
|
-
const timing = this._nodeTimings.get(node);
|
|
165
|
-
if (!timing) throw new Error(`Node ${node.id} not yet queued`);
|
|
166
|
-
return timing;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* @param {CpuNode} node
|
|
171
|
-
* @return {CpuNodeTimingStarted}
|
|
172
|
-
*/
|
|
173
|
-
getCpuStarted(node) {
|
|
174
|
-
const timing = this._nodeTimings.get(node);
|
|
175
|
-
if (!timing) throw new Error(`Node ${node.id} not yet queued`);
|
|
176
|
-
if (!('startTime' in timing)) throw new Error(`Node ${node.id} not yet started`);
|
|
177
|
-
if ('bytesDownloaded' in timing) throw new Error(`Node ${node.id} timing not valid`);
|
|
178
|
-
return timing;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* @param {NetworkNode} node
|
|
183
|
-
* @return {NetworkNodeTimingStarted}
|
|
184
|
-
*/
|
|
185
|
-
getNetworkStarted(node) {
|
|
186
|
-
const timing = this._nodeTimings.get(node);
|
|
187
|
-
if (!timing) throw new Error(`Node ${node.id} not yet queued`);
|
|
188
|
-
if (!('startTime' in timing)) throw new Error(`Node ${node.id} not yet started`);
|
|
189
|
-
if (!('bytesDownloaded' in timing)) throw new Error(`Node ${node.id} timing not valid`);
|
|
190
|
-
return timing;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
/**
|
|
194
|
-
* @param {Node} node
|
|
195
|
-
* @return {CpuNodeTimingInProgress | NetworkNodeTimingInProgress}
|
|
196
|
-
*/
|
|
197
|
-
getInProgress(node) {
|
|
198
|
-
const timing = this._nodeTimings.get(node);
|
|
199
|
-
if (!timing) throw new Error(`Node ${node.id} not yet queued`);
|
|
200
|
-
if (!('startTime' in timing)) throw new Error(`Node ${node.id} not yet started`);
|
|
201
|
-
if (!('estimatedTimeElapsed' in timing)) throw new Error(`Node ${node.id} not yet in progress`);
|
|
202
|
-
return timing;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* @param {Node} node
|
|
207
|
-
* @return {CpuNodeTimingComplete | NetworkNodeTimingComplete}
|
|
208
|
-
*/
|
|
209
|
-
getCompleted(node) {
|
|
210
|
-
const timing = this._nodeTimings.get(node);
|
|
211
|
-
if (!timing) throw new Error(`Node ${node.id} not yet queued`);
|
|
212
|
-
if (!('startTime' in timing)) throw new Error(`Node ${node.id} not yet started`);
|
|
213
|
-
if (!('estimatedTimeElapsed' in timing)) throw new Error(`Node ${node.id} not yet in progress`);
|
|
214
|
-
if (!('endTime' in timing)) throw new Error(`Node ${node.id} not yet completed`);
|
|
215
|
-
return timing;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
export {SimulatorTimingMap};
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
export type Node = import('../BaseNode.js').Node;
|
|
2
|
-
export type NetworkNode = import('../NetworkNode.js').NetworkNode;
|
|
3
|
-
export type CpuNode = import('../CpuNode.js').CPUNode;
|
|
4
|
-
export type CompleteNodeTiming = import('./SimulationTimingMap.js').CpuNodeTimingComplete | import('./SimulationTimingMap.js').NetworkNodeTimingComplete;
|
|
5
|
-
export type ConnectionTiming = import('./SimulationTimingMap.js').ConnectionTiming;
|
|
6
|
-
/**
|
|
7
|
-
* @template [T=any]
|
|
8
|
-
*/
|
|
9
|
-
export class Simulator<T = any> {
|
|
10
|
-
/**
|
|
11
|
-
* @param {Lantern.Simulation.Settings} settings
|
|
12
|
-
*/
|
|
13
|
-
static createSimulator(settings: Lantern.Simulation.Settings): Simulator<any>;
|
|
14
|
-
/** @return {Map<string, Map<Node, CompleteNodeTiming>>} */
|
|
15
|
-
static get ALL_NODE_TIMINGS(): Map<string, Map<Node, CompleteNodeTiming>>;
|
|
16
|
-
/**
|
|
17
|
-
* We attempt to start nodes by their observed start time using the request priority as a tie breaker.
|
|
18
|
-
* When simulating, just because a low priority image started 5ms before a high priority image doesn't mean
|
|
19
|
-
* it would have happened like that when the network was slower.
|
|
20
|
-
* @param {Node} node
|
|
21
|
-
*/
|
|
22
|
-
static _computeNodeStartPosition(node: Node): number;
|
|
23
|
-
/**
|
|
24
|
-
* @param {Lantern.Simulation.Options} [options]
|
|
25
|
-
*/
|
|
26
|
-
constructor(options?: import("../types/lantern.js").Simulation.Options | undefined);
|
|
27
|
-
/** @type {Required<Lantern.Simulation.Options>} */
|
|
28
|
-
_options: Required<Lantern.Simulation.Options>;
|
|
29
|
-
_rtt: number;
|
|
30
|
-
_throughput: number;
|
|
31
|
-
_maximumConcurrentRequests: number;
|
|
32
|
-
_cpuSlowdownMultiplier: number;
|
|
33
|
-
_layoutTaskMultiplier: number;
|
|
34
|
-
/** @type {Array<Node>} */
|
|
35
|
-
_cachedNodeListByStartPosition: Array<Node>;
|
|
36
|
-
_nodeTimings: Lantern.Simulation.SimulatorTimingMap;
|
|
37
|
-
/** @type {Map<string, number>} */
|
|
38
|
-
_numberInProgressByType: Map<string, number>;
|
|
39
|
-
/** @type {Record<number, Set<Node>>} */
|
|
40
|
-
_nodes: Record<number, Set<Node>>;
|
|
41
|
-
_dns: Lantern.Simulation.DNSCache;
|
|
42
|
-
/** @type {ConnectionPool} */
|
|
43
|
-
_connectionPool: ConnectionPool;
|
|
44
|
-
/** @return {number} */
|
|
45
|
-
get rtt(): number;
|
|
46
|
-
/**
|
|
47
|
-
* @param {Node} graph
|
|
48
|
-
*/
|
|
49
|
-
_initializeConnectionPool(graph: Node): void;
|
|
50
|
-
/**
|
|
51
|
-
* Initializes the various state data structures such _nodeTimings and the _node Sets by state.
|
|
52
|
-
*/
|
|
53
|
-
_initializeAuxiliaryData(): void;
|
|
54
|
-
/**
|
|
55
|
-
* @param {string} type
|
|
56
|
-
* @return {number}
|
|
57
|
-
*/
|
|
58
|
-
_numberInProgress(type: string): number;
|
|
59
|
-
/**
|
|
60
|
-
* @param {Node} node
|
|
61
|
-
* @param {number} queuedTime
|
|
62
|
-
*/
|
|
63
|
-
_markNodeAsReadyToStart(node: Node, queuedTime: number): void;
|
|
64
|
-
/**
|
|
65
|
-
* @param {Node} node
|
|
66
|
-
* @param {number} startTime
|
|
67
|
-
*/
|
|
68
|
-
_markNodeAsInProgress(node: Node, startTime: number): void;
|
|
69
|
-
/**
|
|
70
|
-
* @param {Node} node
|
|
71
|
-
* @param {number} endTime
|
|
72
|
-
* @param {ConnectionTiming} [connectionTiming] Optional network connection information.
|
|
73
|
-
*/
|
|
74
|
-
_markNodeAsComplete(node: Node, endTime: number, connectionTiming?: import("./SimulationTimingMap.js").ConnectionTiming | undefined): void;
|
|
75
|
-
/**
|
|
76
|
-
* @param {Lantern.NetworkRequest} request
|
|
77
|
-
* @return {?TcpConnection}
|
|
78
|
-
*/
|
|
79
|
-
_acquireConnection(request: Lantern.NetworkRequest): TcpConnection | null;
|
|
80
|
-
/**
|
|
81
|
-
* @return {Node[]}
|
|
82
|
-
*/
|
|
83
|
-
_getNodesSortedByStartPosition(): Node[];
|
|
84
|
-
/**
|
|
85
|
-
* @param {Node} node
|
|
86
|
-
* @param {number} totalElapsedTime
|
|
87
|
-
*/
|
|
88
|
-
_startNodeIfPossible(node: Node, totalElapsedTime: number): void;
|
|
89
|
-
/**
|
|
90
|
-
* Updates each connection in use with the available throughput based on the number of network requests
|
|
91
|
-
* currently in flight.
|
|
92
|
-
*/
|
|
93
|
-
_updateNetworkCapacity(): void;
|
|
94
|
-
/**
|
|
95
|
-
* Estimates the number of milliseconds remaining given current condidtions before the node is complete.
|
|
96
|
-
* @param {Node} node
|
|
97
|
-
* @return {number}
|
|
98
|
-
*/
|
|
99
|
-
_estimateTimeRemaining(node: Node): number;
|
|
100
|
-
/**
|
|
101
|
-
* @param {CpuNode} cpuNode
|
|
102
|
-
* @return {number}
|
|
103
|
-
*/
|
|
104
|
-
_estimateCPUTimeRemaining(cpuNode: CpuNode): number;
|
|
105
|
-
/**
|
|
106
|
-
* @param {NetworkNode} networkNode
|
|
107
|
-
* @return {number}
|
|
108
|
-
*/
|
|
109
|
-
_estimateNetworkTimeRemaining(networkNode: NetworkNode): number;
|
|
110
|
-
/**
|
|
111
|
-
* Computes and returns the minimum estimated completion time of the nodes currently in progress.
|
|
112
|
-
* @return {number}
|
|
113
|
-
*/
|
|
114
|
-
_findNextNodeCompletionTime(): number;
|
|
115
|
-
/**
|
|
116
|
-
* Given a time period, computes the progress toward completion that the node made durin that time.
|
|
117
|
-
* @param {Node} node
|
|
118
|
-
* @param {number} timePeriodLength
|
|
119
|
-
* @param {number} totalElapsedTime
|
|
120
|
-
*/
|
|
121
|
-
_updateProgressMadeInTimePeriod(node: Node, timePeriodLength: number, totalElapsedTime: number): number | void;
|
|
122
|
-
/**
|
|
123
|
-
* @return {{nodeTimings: Map<Node, Lantern.Simulation.NodeTiming>, completeNodeTimings: Map<Node, CompleteNodeTiming>}}
|
|
124
|
-
*/
|
|
125
|
-
_computeFinalNodeTimings(): {
|
|
126
|
-
nodeTimings: Map<Node, Lantern.Simulation.NodeTiming>;
|
|
127
|
-
completeNodeTimings: Map<Node, CompleteNodeTiming>;
|
|
128
|
-
};
|
|
129
|
-
/**
|
|
130
|
-
* @return {Required<Lantern.Simulation.Options>}
|
|
131
|
-
*/
|
|
132
|
-
getOptions(): Required<Lantern.Simulation.Options>;
|
|
133
|
-
/**
|
|
134
|
-
* Estimates the time taken to process all of the graph's nodes, returns the overall time along with
|
|
135
|
-
* each node annotated by start/end times.
|
|
136
|
-
*
|
|
137
|
-
* Simulator/connection pool are allowed to deviate from what was
|
|
138
|
-
* observed in the trace/devtoolsLog and start requests as soon as they are queued (i.e. do not
|
|
139
|
-
* wait around for a warm connection to be available if the original request was fetched on a warm
|
|
140
|
-
* connection).
|
|
141
|
-
*
|
|
142
|
-
* @param {Node} graph
|
|
143
|
-
* @param {{label?: string}=} options
|
|
144
|
-
* @return {Lantern.Simulation.Result<T>}
|
|
145
|
-
*/
|
|
146
|
-
simulate(graph: Node, options?: {
|
|
147
|
-
label?: string;
|
|
148
|
-
} | undefined): Lantern.Simulation.Result<T>;
|
|
149
|
-
/**
|
|
150
|
-
* @param {number} wastedBytes
|
|
151
|
-
*/
|
|
152
|
-
computeWastedMsFromWastedBytes(wastedBytes: number): number;
|
|
153
|
-
}
|
|
154
|
-
import * as Lantern from '../lantern.js';
|
|
155
|
-
import { ConnectionPool } from './ConnectionPool.js';
|
|
156
|
-
import { TcpConnection } from './TcpConnection.js';
|
|
157
|
-
//# sourceMappingURL=Simulator.d.ts.map
|