Означает ли это, что следующий фрагмент кода в очереди заданий занимает много времени?
время веб-приложение не будет отвечать, пока код не будет
закончил
В основном да, сложность времени имеет большое значение, когда вы запускаете код в цикле событий. Например, в nodejs не рекомендуется использовать синхронную версию API шифрования, т.е.:
crypto.randomBytes (synchronous version)
crypto.randomFillSync
crypto.pbkdf2Sync
, поскольку они требуют дорогостоящих вычислений.
Каков размер "куска кода"? Это тело функции или блок кода (т.е. код внутри {} скобок)?
Из вашей цитаты, «кусок кода», я думаю, что это просто ссылка на оператор, поэтому один поток может выполнять только ОДИН оператор за раз, поэтому параллельного выполнения не происходит, чего можно достичь только с несколькими потоками. ,
Примечание: вместо "размера фрагмента кода" важнее вычислительная сложность .
Довольно большой «размер фрагмента кода» может выполняться за постоянное время O (1), тогда как фрагмент меньшего размера может занимать экспоненциальное время.
Подробнее здесь , особенно для Google V8 Engine.
TL; DR : сложность вычислений имеет значение, особенно в однопоточных двигателях. Для длительных вычислений используйте веб-работников в браузере или дочерний процесс при использовании узла.