ソースを参照

Hw17 all done

maryluis 4 年 前
コミット
6bef237ddf
1 ファイル変更74 行追加0 行削除
  1. 74 0
      homework17/speedTest.html

+ 74 - 0
homework17/speedTest.html

@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Speed-test</title>
+</head>
+<body>
+    
+
+    <script>
+        const delay = ms => new Promise(ok => setTimeout(() => ok(ms), ms))
+
+
+        async function speedtest(getPromise, count,parallel=1){
+
+
+
+            var duration = 0;
+            var querySpeed;
+            var queryDuration;
+            var parallelSpeed;
+            var parallelDuration;
+
+
+
+
+            for(let j = 0; j < count; j++) {
+
+                let start = new Date().getTime();
+                let parallelArray = []
+
+                for(let i = 0; i < parallel; i++) {
+                  parallelArray.push(getPromise());
+                }
+
+                console.log(await Promise.all(parallelArray));
+
+
+                let end = new Date().getTime();
+
+                duration += (end - start);
+                
+            };
+
+           
+            querySpeed = (count * parallel) / duration;
+            queryDuration = duration / count;
+            parallelSpeed = (count * parallel) / duration;
+            parallelDuration = count / duration;
+
+               
+            return {
+                duration,
+                querySpeed, //средняя скорость одного запроса
+                queryDuration, //
+                parallelSpeed,
+                parallelDuration
+            }
+        }
+
+//speedtest(() => delay(1000), 10, 10 ).then(result => console.log(result));
+// {duration: 10000, 
+// querySpeed: 0.001, //1 тысячная запроса за миллисекунду
+// queryDuration: 1000, //1000 миллисекунд на один реальный запрос в среднем 
+// parallelSpeed: 0.01  // 100 запросов за 10000 миллисекунд
+// parallelDuration: 100 // 100 запросов за 10000 миллисекунд
+//speedtest(() => fetch('http://swapi.dev/api/people/1').then(res => res.json()), 10, 5);
+
+speedtest(() => fetch('http://swapi.dev/api/people/1').then(res => res.json()), 10, 5).then(result => console.log(result));
+
+    </script>
+</body>
+</html>