Очень бы не рекомендовал использовать разные типы передаваемых аргументов в V8 в тех случаях, где требуется высокая нагрузка.
JIT компилятор не сможет использовать нативный код в таких функциях.
EM сама по себе использует тот же паттерн, что и nodejs — en.wikipedia.org/wiki/Reactor_pattern
Т.е. асинхронная модель и один тред. НО в EM существует workaround для библиотек, которые не умеют работать с IO в асинхронном режиме (mysql ЕМНИП) — EM.defer — это пул из тредов, которые могут блокироваться, что в главном треде позволить нельзя.
GIL во время блокируемых IO операций освобождается, и в это время другие потоки работают.
Т.е. если у Вас блокируемые операции IO — выносите их в EM.defer.
У яндексовцев однозначно есть чувство юмора
struct?.substruct?.field
экономит нервные клетки
JIT компилятор не сможет использовать нативный код в таких функциях.
мне одному режет глаз (ухо)?
Т.е. асинхронная модель и один тред. НО в EM существует workaround для библиотек, которые не умеют работать с IO в асинхронном режиме (mysql ЕМНИП) — EM.defer — это пул из тредов, которые могут блокироваться, что в главном треде позволить нельзя.
GIL во время блокируемых IO операций освобождается, и в это время другие потоки работают.
Т.е. если у Вас блокируемые операции IO — выносите их в EM.defer.
И уж никак не шифрование.
см.
eventmachine.rubyforge.org/EventMachine.html#defer-class_method
github.com/eventmachine/eventmachine/wiki/EM::Deferrable-and-EM.defer