The C10K problem

проблемы :

  1. Thread

  2. Unix.select : получает и возвращает списки и это под нагрузкой трешит GC.

  3. много Callback.register: дорогая регистрация, все коллбэки регистрируются в global\_root'ы,

решения :

  1. писать event-driven

  2. написать свой враппер на массивах, использовать libevent или более прямую альтернативу - libev

  3. вместо того, чтобы писать callback код, делать инверсию выполнения с помошью cps + pa\_monad.