История изменений
Исправление Vit, (текущая версия) :
Не лезь в яваскриптовый GC. Ты там погибнешь, ничего толкового не добившись. Если у тебя настолько высокие требования к реалтайму, то надо выбирать другой язык. А для всего остального достаточно знать, что GC довели до ума и явных фризов на секунду в v8 больше нет. Работа GC настолько сильно зависит от количества памяти, что твои попытки его закостылировать покажут в результате погоду на марсе. На практике никого не парит, как именно он собирает мусор, и затачивать по него код - глупость.
По оптимизациям v8 есть видео Егорова на ютюбе, но там настолько много нюансов, что без реальных задач будет зряшная трата времени. У меня есть примеры кода, где имело смысл клеить методы напрямую, без прототипов, и другие примеры, где создание таких объектов вызывало просадку по скорости. Единственный разумный подход - перестать париться над скоростью, и просто не клепать миллионы прослоек, благо типизация не статическая и это не сложно. Если вдруг случится чудо, и у тебя на самом деле появится задача, где надо кроить микросекунды - тогда и разберешься. Но на практике такие шансы исчезающе малы.
Будь проще, в общем. В JS нет ни каких серебряных пуль и магии. Его стоит выбирать просто потому что тебе хочется на нем писать, или заказчик требует. Либо если тебе приперло написать именно клиентское приложение, которое общается с тонким сервером через rest (но клиентское приложение - это уже не node.js).
проблема в том, что половина мира его использует, ...
Нет такой проблемы. Кофескрипт используют всякие фрики-выпендрежники, и бегинеры, которые вместо того чтобы учиться программированию ищут волшебные вундервафли. И на тех и на других можно спокойно положить болт. В крайнем случае, если кто-то написал под ноду модуль на кофескрипте - ну подключишь модуль, он же полностью изолирован. На твой код это не повлияет.
Исходная версия Vit, :
Не лезь в яваскриптовый GC. Ты там погибнешь, ничего толкового не добившись. Если у тебя настолько высокие требования к реалтайму, то надо выбирать другой язык. А для всего остального достаточно знать, что GC довели до ума и явных фризов на секунду в v8 больше нет. Работа GC настолько сильно зависит от количества памяти, что твои попытки его закостылировать покажут в результате погоду на марсе. На практике никого не парит, как именно он собирает мусор, и затачивать по него код - глупость.
По оптимизациям v8 есть видео Егорова на ютюбе, но там настолько много нюансов, что без реальных задач будет зряшная трата времени. У меня есть примеры кода, где имело смысл клеить методы напрямую, без прототипов, и другие примеры, где создание таких объектов вызывало просадку по скорости. Единственный разумный подход - перестать париться над скоростью, и просто не клепать миллионы прослоек, благо типизация не статическая и это не сложно. Если вдруг случится чудо, и у тебя на самом деле появится задача, где надо кроить микросекунды - тогда и разберешься. Но на практике такие шансы исчезающе малы.
Будь проще, в общем. В JS нет ни каких серебряных пуль и магии. Его стоит выбирать просто потому что тебе хочется на нем писать, или заказчик требует. Либо если тебе приперло написать именно клиентское приложение, которое общается с тонким сервером через rest (но клиентское приложение - это уже не node.js).
проблема в том, что половина мира его использует, ...
Нет такой проблемы. Кофескрипт используют всякие фрики-выпендрежники, и бегинеры, которые вместо того чтобы учиться программированию ищут волшебные вундервафли. И на тех и на других можно спокойно положить болт. В крайнем случае, если кто-то написал под ноду модуль на яваскрипте - ну подключишь модуль, он же полностью изолирован. На твой код это не повлияет.