Browse Source

speedtest written, hometask done

miskson 2 years ago
parent
commit
5befd3e587
1 changed files with 29 additions and 1 deletions
  1. 29 1
      hw13-promisePt2/hometask/script.js

+ 29 - 1
hw13-promisePt2/hometask/script.js

@@ -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))