|
@@ -80,4 +80,32 @@ async function pedestrianTrafficLight(parent, redTime = 4000, yellowTime = 2000,
|
|
|
colors[2].style.backgroundColor = 'black'
|
|
|
}
|
|
|
}
|
|
|
-pedestrianTrafficLight(div, 3000, 3000, 3000)
|
|
|
+pedestrianTrafficLight(div, 3000, 3000, 3000)
|
|
|
+
|
|
|
+
|
|
|
+// speedtest
|
|
|
+async function speedtest(getPromise, count,parallel=1){
|
|
|
+ let _parallel = parallel
|
|
|
+ let duration = performance.now()
|
|
|
+
|
|
|
+ for(let i = 0; i < count; i++) {
|
|
|
+ let promises = []
|
|
|
+
|
|
|
+ while(parallel !== 0) {
|
|
|
+ promises.push(await getPromise())
|
|
|
+ parallel -= 1
|
|
|
+ }
|
|
|
+ Promise.all(promises)
|
|
|
+ }
|
|
|
+ duration = performance.now() - duration
|
|
|
+ return {
|
|
|
+ duration: duration,
|
|
|
+ querySpeed: 1 / (duration / count),
|
|
|
+ queryDuration: duration / count,
|
|
|
+ parallelSpeed: (count * _parallel) / (duration / count),
|
|
|
+ parallelDuration: duration / (count * _parallel)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//speedtest(() => delay(1000), 10, 10 ).then(result => console.log('result',result))
|
|
|
+speedtest(() => fetch('http://swapi.dev/api/people/1').then(res => res.json()), 10, 5).then(result => console.log('result',result))
|