Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
feat: implement latency measurement for resource fetching
Browse files- src/lib/index.ts +14 -8
src/lib/index.ts
CHANGED
@@ -14,12 +14,20 @@ export async function bandwidthTest(
|
|
14 |
onProgress: BandwidthCallback,
|
15 |
onLatency: (latency: number) => void
|
16 |
) {
|
17 |
-
performance.setResourceTimingBufferSize(100);
|
18 |
-
performance.clearResourceTimings();
|
19 |
-
//
|
20 |
-
const
|
21 |
-
|
22 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
const response = await fetch(url);
|
24 |
if (!response.ok) {
|
25 |
throw new Error(`Network response was not ok: ${response.status}`);
|
@@ -35,8 +43,6 @@ export async function bandwidthTest(
|
|
35 |
// const latency = responseStart - requestStart;
|
36 |
// onLatency(latency);
|
37 |
// }, 2000);
|
38 |
-
const latency = performance.now() - startTime;
|
39 |
-
onLatency(latency);
|
40 |
const contentLengthHeader = response.headers.get('content-length');
|
41 |
const totalBytes = contentLengthHeader ? parseInt(contentLengthHeader, 10) : 1e99;
|
42 |
const reader = response.body.getReader();
|
|
|
14 |
onProgress: BandwidthCallback,
|
15 |
onLatency: (latency: number) => void
|
16 |
) {
|
17 |
+
// performance.setResourceTimingBufferSize(100);
|
18 |
+
// performance.clearResourceTimings();
|
19 |
+
// const url = 'https://cdn-test-cloudfront.hf.co/5gb.safetensors';
|
20 |
+
const url = 'https://cdn-test-cloudfront.hf.co/15mb.json';
|
21 |
+
// first HEAD to get latency
|
22 |
+
let startTime = performance.now();
|
23 |
+
const latencyResponse = await fetch(url, { method: 'HEAD' });
|
24 |
+
if (!latencyResponse.ok) {
|
25 |
+
throw new Error(`Network response was not ok: ${latencyResponse.status}`);
|
26 |
+
}
|
27 |
+
const latency = performance.now() - startTime;
|
28 |
+
onLatency(latency);
|
29 |
+
|
30 |
+
startTime = performance.now();
|
31 |
const response = await fetch(url);
|
32 |
if (!response.ok) {
|
33 |
throw new Error(`Network response was not ok: ${response.status}`);
|
|
|
43 |
// const latency = responseStart - requestStart;
|
44 |
// onLatency(latency);
|
45 |
// }, 2000);
|
|
|
|
|
46 |
const contentLengthHeader = response.headers.get('content-length');
|
47 |
const totalBytes = contentLengthHeader ? parseInt(contentLengthHeader, 10) : 1e99;
|
48 |
const reader = response.body.getReader();
|