在过去的几周里,我一直在学习和试验Clojure和Erlang。据我所知,两者都解决了相同类型的问题--但--使用了不同的方法。如果这是正确的,那么Clojure就像Erlang一样,是聊天应用程序或股票交易系统等实时系统的可行选择吗?
发布于 2011-08-10 09:56:06
就Clojure而言,它可以提供与底层Java VirtualMachine一样多的实时功能。
您可以使用JVM创建硬实时系统,但这必须超越Clojure提供的语言语法。
根据您的实时需求,看起来您需要调优JVM (这里是一个很好的IBM Works article,或者使用特定的JVM,比如Fiji JVM
关于Erland,已经有了一个相关的questions on SO
Chat和ticker plants应用程序可以用这两种语言实现,但我个人怀疑使用Clojure部署会更容易,特别是在云服务(Heroku)和常规托管服务方面。
发布于 2011-08-11 00:52:38
是的,对于(软)实时应用来说,Clojure是一个非常可行的选择。
基本上,您可以获得与JVM上的任何其他性能相当的实时性能。由于人们将JVM用于实时交易平台(例如These guys),因此我确信它将适用于聊天或股票报价器。
Clojure特别适合于访问共享状态的高并发应用程序,因为它有一个非常好的model of Software Transactional Memory,可以很好地扩展到大量线程/大量内核。我相信有一个Rich Hickey的视频演示了一个并发的Clojure应用程序在一个768核的Azul系统上没有任何问题。
您可以将这与Erlang进行对比,Erlang是为不共享状态的高度分布式的参与者设计的。这为Erlang应用程序提供了跨机器集群的巨大冗余和可伸缩性,但每个进程都可以管理自己的独立状态。
https://stackoverflow.com/questions/7002260
复制相似问题