彗星的最佳方法? (非阻塞IO vs Erlang)

也许问题不是那么容易回答...但是您有何看法?我应该使用非阻塞方法(例如,libevent)还是使用erlang轻量级进程来: 在给定的RAM量下实现尽可能多的连接 在给定的CPU量下实现尽可能高的吞吐量 背景是,我打算编写发布服务器/子服务器的代码,而我不能决定应该使用哪种方法。     
已邀请:
您可以在此处阅读有关使用Mochiweb制作百万用户彗星应用程序的一篇文章。但我认为稳定性,灵活性和可维护性在大多数时候将更为重要。请牢记这一点,即使会有更好的解决方案,我也不会考虑Erlang以外的其他问题。     
在后台,Erlang VM使用非阻塞IO。如果您使用Erlang轻量级进程块,则VM不会真正执行内核级线程上下文切换。在大多数情况下,它只会在同一OS线程上唤醒另一个LWP(因此,按正确的含义,它不是“阻塞”)。 您甚至可以使用+ A参数启动vm并指定要分配的IO事件循环线程数(AFAIK,Node.js仍为单线程,并且如果挂起了回调函数,则完成了您的VM)     

要回复问题请先登录注册