|
@@ -72,7 +72,7 @@ function domEventPromiseWrapp() {
|
|
|
|
|
|
|
|
|
|
|
|
-pedestrianTrafficLightWrapp()
|
|
|
+// pedestrianTrafficLightWrapp()
|
|
|
function pedestrianTrafficLightWrapp() {
|
|
|
|
|
|
const delay = ms => new Promise(ok => setTimeout(() => ok(ms), ms))
|
|
@@ -133,42 +133,36 @@ function pedestrianTrafficLightWrapp() {
|
|
|
|
|
|
|
|
|
|
|
|
-// speedTestWrapp()
|
|
|
+speedTestWrapp()
|
|
|
function speedTestWrapp() {
|
|
|
-
|
|
|
-
|
|
|
- const gql = (url, query, variables) => fetch(url, {
|
|
|
- method: 'POST',
|
|
|
- headers: {'content-type': 'application/json'},
|
|
|
- body: JSON.stringify({query, variables}),
|
|
|
- });
|
|
|
-
|
|
|
- (async function() {
|
|
|
- let response = await gql("http://shop-roles.asmer.fs.a-level.com.ua/graphql", `query cats($q:String) {
|
|
|
- CategoryFind(query:$q){
|
|
|
- name goods{
|
|
|
- name images{
|
|
|
- url
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
+ async function speedtest(getPromise, count, parallel=1) {
|
|
|
+
|
|
|
+ let firstTime = performance.now()
|
|
|
+ for (let i = count; i > 0; i--) {
|
|
|
+ let promiseArr = []
|
|
|
+ for (let j = parallel; j > 0; j--) {
|
|
|
+ promiseArr.push(getPromise())
|
|
|
}
|
|
|
- }`, {q: "[{}]"});
|
|
|
- let result = await response.json();
|
|
|
- })()
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- async function speedtest(getPromise, count,parallel=1){
|
|
|
-
|
|
|
+ // console.log(promiseArr)
|
|
|
+ await Promise.all(promiseArr)
|
|
|
+ }
|
|
|
+ let duration = performance.now() - firstTime
|
|
|
+ let parallelDuration = duration / (parallel*count)
|
|
|
+ let parallelSpeed = (parallel*count) / duration
|
|
|
+ let queryDuration = duration / count
|
|
|
+ let querySpeed = 1 / queryDuration
|
|
|
|
|
|
return {
|
|
|
duration,
|
|
|
querySpeed, //средняя скорость одного запроса
|
|
|
- queryDuration, //
|
|
|
+ queryDuration,
|
|
|
parallelSpeed,
|
|
|
parallelDuration
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ const delay = ms => new Promise(ok => setTimeout(() => ok(ms), ms))
|
|
|
|
|
|
speedtest(() => delay(1000), 10, 10 ).then(result => console.log(result))
|
|
|
// {duration: 10000,
|
|
@@ -176,8 +170,29 @@ function speedTestWrapp() {
|
|
|
// 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))
|
|
|
+
|
|
|
+
|
|
|
+ const gql = (url, query, variables) => fetch(url, {
|
|
|
+ method: 'POST',
|
|
|
+ headers: {'Content-Type': 'application/json'},
|
|
|
+ body: JSON.stringify({query, variables}),
|
|
|
+ })
|
|
|
+ .then(response => response.json())
|
|
|
+
|
|
|
+ speedtest(() => {
|
|
|
+ gql("http://shop-roles.asmer.fs.a-level.com.ua/graphql", `query cats($q:String) {
|
|
|
+ CategoryFind(query:$q){
|
|
|
+ name goods{
|
|
|
+ name images{
|
|
|
+ url
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }`, {q: "[{}]"})
|
|
|
+ },
|
|
|
+ 10, 100 ).then(result => console.log(result))
|
|
|
}
|
|
|
|
|
|
|