소스 검색

HW13AsyncAwait done

Aleksandrov96 2 년 전
부모
커밋
fc46a969d0
1개의 변경된 파일53개의 추가작업 그리고 1개의 파일을 삭제
  1. 53 1
      homeWork13AsyncAwait/index.js

+ 53 - 1
homeWork13AsyncAwait/index.js

@@ -46,4 +46,56 @@ async function pedestrianTrafficLight(){
         ])
     }
 }
-pedestrianTrafficLight()
+pedestrianTrafficLight()
+
+///////////////////////////////////////////////
+//speedtest 
+Array.prototype.average = function () { 
+    var sum = 0; 
+    var count = this.length; 
+    for (i = 0; i < count; i++) { 
+      sum += this[i]; 
+    } 
+    return sum / count; 
+  }; 
+   
+  async function speedtest(getPromise, count, parallel = 1) { 
+    const parallelDuration = count * parallel; 
+    let arrTimeQuery = []; 
+    const storageParallel = parallel; 
+    const storageCount = count; 
+    let box = []; 
+    const time = performance.now(); 
+    while (count > 0) { 
+      let queryTime = performance.now(); 
+      while (parallel > 0) { 
+        box.push(getPromise()); 
+        parallel--; 
+      } 
+      parallel = storageParallel; 
+      console.log(box); 
+      await Promise.all(box); 
+      box = []; 
+      count--; 
+      arrTimeQuery.push(performance.now() - queryTime); 
+    } 
+    count = storageCount; 
+    const queryDuration = arrTimeQuery.average(); 
+    const duration = performance.now() - time; 
+    const querySpeed = parallelDuration / duration / count; 
+    const parallelSpeed = parallelDuration / duration; 
+    return { 
+      duration, 
+      querySpeed, 
+      queryDuration, 
+      parallelSpeed, 
+      parallelDuration, 
+    }; 
+  } 
+   
+  speedtest(() => delay(1000), 10, 10).then((result) => console.log(result)); 
+  speedtest( 
+    () => fetch("http://swapi.dev/api/people/1").then((res) => res.json()), 
+    10, 
+    5 
+  ).then((result) => console.log(result));