проблемы :
Unix.select : получает и возвращает списки и это под нагрузкой трешит GC.
много Callback.register: дорогая регистрация, все коллбэки регистрируются в global\_root'ы,
решение - коллбэки диспатчить через хэштаблицу прямо в камле
решения :
писать event-driven
написать свой враппер на массивах, использовать libevent или более прямую альтернативу - libev
вместо того, чтобы писать callback код, делать инверсию выполнения с помошью cps + pa\_monad.
это сделано в lwt собственно и можно использовать libev (либо другие асинхронные обёртки)
вместо select.