Почему этот вопрос?
Я узнаю кое-что о выступлениях js и веб-рендеринге. Этот пост был очень полезен.
Если вы перейдете по некоторым ссылкам, вы попадете сюда и прочитаете это:
Код пользователя в узле.js запускается в одном потоке, поэтому для вычислительных операций (в отличие от ввода-вывода) вы можете выполнять их одновременно, но не параллельно.
Итак, я прочитал кое-что о параллелизме ипараллелизм в узле JS.Что я узнал, так это то, что nodeJS:
- Параллельно для задач, связанных с вводом / выводом, поскольку он обрабатывается
libuv
- Параллельно для задач, связанных с процессором
Это объясняет, почему renderToString
медленная операция, поскольку она связана с процессором.Но кажется, что есть способ включить параллелизм задач, связанных с ЦП, в nodejs: кластеризация .
Вопрос
Вот почему я здесь.Знаете ли вы, почему renderToString
не кластеризован (не знаю, является ли это действительным английским)?
- Может быть, это слишком сложно?
- Может быть, просто не может бытьсделано параллельно?
- Может быть, это не улучшает производительность по какой-то причине?
Я хотел бы понять, почему.Потому что после этих чтений я склонен думать, что nodeJS является очень производительным, когда дело доходит до работы с вводом / выводом, но, похоже, он также эффективен для задач, связанных с процессором, поскольку вы можете создавать кластеры.Тем не менее, это не кажется тривиальным и это выбор, который нужно рассмотреть в некоторых конкретных случаях.
Так что это приводит нас к одному дополнительному вопросу: каковы ограничения / недостатки кластеров nodejs?(Исключая тот факт, что он кажется сложным в настройке и обслуживании в больших проектах?)