我正在为游戏开发服务器。你知道在游戏中,许多数据结构应该是可变的。但Clojure的数据结构是不可改变的。有一些好主意吗? 做这个?我应该使用clojure吗?
答案 0 :(得分:0)
变异数据结构允许您从代码中挤出最后一盎司的性能,但考虑到您正在编写服务器,网络延迟可能比内存分配产生更大的影响。 Clojure应该是合适的,当然是一个起点。
虽然Clojure的数据结构是不可变的,但可以通过atoms,refs,core.async循环状态和数据管道来管理应用程序状态。 Clojure应用程序几乎不是静态的,因为它的数据结构是。
您现在面临的最大风险是确定要构建的内容,而Clojure的实时开发模型将加速学习循环。您可以在服务器运行时重新定义功能并立即查看其效果。
我建议您在Clojure中对服务器进行原型设计,然后,如果需要提高性能,请对代码进行概要分析。如有必要,您可以向Java引入瞬态和易失性以及端口性能关键部分。