Почему тормозят 500 циклов, в чем причина и как это оптимизировать? Так случилось что понадобился большой скрипт, чтобы замедлить работу браузера, потом я пошел дальше и проверил как с этой задачей справятся другие языки. Итак, я использовал такой код: 500 циклов, каждый 125 000 000 итераций, в теле инструкция: result = n * 3 / 2.let result; let i; for (i = 0; i < 125000000; i++) { result = i * 3 / 2; } for (i = 0; i < 125000000; i++) { result = i * 3 / 2; } for (i = 0; i < 125000000; i++) { result = i * 3 / 2; } // еще 497 аналогичных цикла... Тут приведен JS код, в других языках конструкция аналогична. Результат меня весьма удивил... PHP - провал *. C# - провал *. С - 163 секунды. С++ - 150 секунд. JS (Node) - 56 секунд. Запускал под ОС Windows 10.* операция длилась более 15 минут, надоело ждать завершения - убил процесс. Опытные товарищи, подскажите, каким образом нода могла оказаться быстрее C и С++ и почему C# с PHP вообще "забуксовали"? Это может быть связанно с не оптимизированным доступом к памяти в случае нативного кода?
Да, скорее всего, разница в производительности между различными языками программирования в данном случае связана с оптимизацией кода и спецификой работы языков.
Node.js, являющийся реализаций JavaScript, может быть быстрее в данном случае из-за особенностей работы событийного цикла и асинхронных операций. Благодаря этому, Node.js может эффективнее обрабатывать такие операции, чем например, PHP.
Шустрота Node.js также может быть связана с тем, что в случае JavaScript JIT-компилятор, который оптимизирует код во время выполнения, что увеличивает его производительность.
Относительно C и C++, возможно, что в ваших примерах происходят неоптимальные обращения к памяти или что-то другое, что замедляет выполнение кода.
Что касается C#, то здесь могут влиять различные факторы, такие как работа сборщика мусора и другие подводные камни языка.
Если вы хотите оптимизировать выполнение подобных циклов, можно рассмотреть возможность использования параллельных вычислений, векторных инструкций, при необходимости применять оптимизации на уровне компилятора и т.д.
Да, скорее всего, разница в производительности между различными языками программирования в данном случае связана с оптимизацией кода и спецификой работы языков.
Node.js, являющийся реализаций JavaScript, может быть быстрее в данном случае из-за особенностей работы событийного цикла и асинхронных операций. Благодаря этому, Node.js может эффективнее обрабатывать такие операции, чем например, PHP.
Шустрота Node.js также может быть связана с тем, что в случае JavaScript JIT-компилятор, который оптимизирует код во время выполнения, что увеличивает его производительность.
Относительно C и C++, возможно, что в ваших примерах происходят неоптимальные обращения к памяти или что-то другое, что замедляет выполнение кода.
Что касается C#, то здесь могут влиять различные факторы, такие как работа сборщика мусора и другие подводные камни языка.
Если вы хотите оптимизировать выполнение подобных циклов, можно рассмотреть возможность использования параллельных вычислений, векторных инструкций, при необходимости применять оптимизации на уровне компилятора и т.д.