re: Clojure 性能 tips(翻译) steven.cui 2014-02-13 22:50
@Syeerzy
具体性能提高多少可能跟jvm版本以及clj版本有区别,这个应该还是在clojure1.3之前的文章,现在的版本估计已经足够聪明了,还是那句话过度优化和过早优化都是恶魔。@Syeerzy
@wade
目前我在研究erlang,java可以借鉴erlang的多进程并发思想来做,Actor/SEDA设计模型可以增加吞吐量和并发,如果你有C和lua经验,可以参考云风的skynet,当然还可以考虑Scala或者Clojure,Scala本身支持函数式,更有Actor模型存在,也有很多国内的朋友在用Scala写游戏服务器。
另外一个无锁的消费生产者模型,Disruptor,如果你有能力自己实现Actor/SEDA模型,可以将Disruptor嫁接进来。
游戏服务器的难度设计在于几点:
1.多服务器的通讯和稳定,以及各种容错机制,热更新。
2.快速迭代的测试模型和性能验证模型。(解决上下文的关联问题,我能想到的是尽量利用函数式语言来做)
3.监控和相应的配置工具,目前Erlang的体系的确是很强大,帮你做了很多。
至于XGameEnginne,我们之前的上线游戏,都是通过业务逻辑的方式分配线程,此方法不算是特别智能,但也在一定程度上可以解决部分并发的问题,其实Erlang来做的话也可以这么设计,但却比Java有更好的办法,毕竟Erlang对进程的开销实在太小了。
最后,选择有很多,不要让语言成为你的限制,当然这是扯淡,关键是要找合适的:D
re: Clojure世界:Http Client steven.cui 2012-05-19 15:49
很棒的类库,正在尝试用clojure,尝试着做些wrapper,的确是快速入门的方式。