EventMachine不断运行循环,检查:
第二步涉及引擎盖下的适当机制,例如该 select(..) 呼叫。这是量子值的来源。所以基本上循环看起来像这样:
select(..)
quantum
因此设定 quantum 较低的值将使循环更频繁地迭代,从而占用CPU周期。我认为这不是一个真正的问题。
让我感到惊讶的是,由于所有这些查询机制,你都有通信延迟( select , 要么 epoll 如果文件描述符上有事件(例如数据),则立即返回。这基本上意味着你根本不应该承担这些延误。如果这种延迟是设计的,那么众多瘦用户就已经对此感到非常沮丧。
select
epoll
所有这些让我觉得你的代码中有些东西稍微不正确,这使得它以这种方式工作。不幸的是,除非我看到它,否则我说的不多。
希望能帮助到你!