Обеспечивает ли асинхронная обработка .map () прирост производительности даже без внешних вызовов API? - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь улучшить скорость сценария синтаксического анализа JSON, который создает файл HTML на основе данных внутри него.

Файл JSON имеет структуру вложенных строк / столбцов / модулей содержимого, иЯ перебираю их, чтобы преобразовать каждый модуль контента в HTML.

jsonFile.page.rows.map(row => {
  row.columns.map(col =>{
    col.modules.map(mod => {
      switch(mod.type){
        case "text":
          // list of JSON handling functions;
          break;
        case "button":
          // list of JSON handling functions;
          break;
        case "image":
          // list of JSON handling functions;

        // etc...
      }
    })
  })
})

Поскольку каждый блок контента независим, я хотел повысить скорость этого цикла и найти способ сделать код асинхронным.

довольно плохо знаком с асинхронным программированием, и я попробовал несколько реализаций async / await без какого-либо везения (=> без какого-либо увеличения скорости).Это привело меня к сомнению: может ли async / await действительно улучшить производительность моего кода, даже если в моем коде нет вызовов внешних API-интерфейсов?

Можете ли вы предложить подход для повышения скоростивышеуказанного кода?Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 27 марта 2019

Поскольку JavaScript является однопоточным, .map не обеспечивает повышения производительности по сравнению с обычным циклом for.На самом деле это немного медленнее, чем обычный цикл for.Смотрите, например, это JSPerf .

...