我在这里与大家分享一些从世界单打系统中获得的经验……
我们早在2009年11月就开始使用Scala语言,我们有一个操作需要运行很长时间,从会员信息数据库中获取大量的数据变化信息,并以如下形式发送给自定义搜索引擎一个XML 包文件。将数据库中的大量数据表映射到XML规则文件是一个比较复杂的操作。过去,公司尝试过各种方法,有些有效,有些无效。我向公司推荐Scala语言,因为它高效、并行、类型安全、方便(特别是XML在Scala语言中有对应的基本数据类型)。
将近两年来,我们一直在使用Scala 编程作为产品发布的后端。大多数时候,它运行得很好,但是当压力很大时,它就会溢出内存。经过大量的观察和测试,我们慢慢确认(至少部分原因)是Scala语言本身的实现。这个问题。 Scala 正准备合并Akka 库,我们一直在考虑将程序迁移到Akka.
自从我们今年开始使用Clojure 语言(我们大约在去年5 月份开始尝试),我们认为我们应该集中精力开发一个Clojure 版本的Scala 程序,看看它运行得如何。
Clojure版本的后台发布程序,我们花了大约15个小时开发,并通过了所有测试。今天我们进行了一次“疲劳测试”,让它一次处理近30万会员的信息。如果是Scala程序,当一次处理的数据量达到50000份(有时更少)时,就会报内存溢出错误。但是Clojure程序是一口气完成的,非常顺利—— 所以,我们决定在下一个产品发布中用它来替代Scala程序。
另一个有趣的方面是该程序的Scala 版本大约有1,000 行长(大约31,000 个字符)。 Clojure 版本只有260 行(大约11,500 个字符)。甚至注释也更容易(*呃* - 不是我想吹牛,只是说比较是公正的)。我们的比较没有考虑单元测试代码,因为Clojure 版本是仓促写的。 Clojure的代码形式和Scala代码很接近,很多功能都是一样的。 ——Clojure 是更强大的Scala——。它重构了一些辅助功能,使其更加模块化和可维护性。 (北京网出品)
结果,很明显我会在生产中使用Clojure 版本的发行版,完全放弃Scala。
感谢Rich Hickey(Clojure 语言的发明者)和Clojure/核心开发团队创造了如此适用的编程语言,帮助人们解决大问题—— 谢谢!
标签: 北京网站制作高端网站建设
我们专注高端建站,小程序开发、软件系统定制开发、BUG修复、物联网开发、各类API接口对接开发等。十余年开发经验,每一个项目承诺做到满意为止,多一次对比,一定让您多一份收获!