INSIGHTS & SHARING / 观点与分享

【北京网站制作】Clojure语言挑战Scala语言 我们不怕内存溢出

网站建设 阅读 1004

我在这里与大家分享一些从世界单打系统中获得的经验……

我们早在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/核心开发团队创造了如此适用的编程语言,帮助人们解决大问题—— 谢谢!

标签: 北京网站制作高端网站建设

本文来自推来客官网,转载请注明原文地址:
https://www.99hyw.cn/web/13845.html

NINE REASONS TO CHOOSE US

选择推来客,九大优势

从开发效果到后续服务,
把每一份信任,落到实处。

01 / 效果

效果做到满意为止

认真打磨每一个细节,用实际效果回应您的期待。

02 / 价值

高性价比

让投入回到业务价值,兼顾品质、功能与开发成本。

03 / 技术

专业技术团队

理解业务需求,以专业技术推进项目落地。

04 / 经验

10年+运营经验

长期深耕开发与运营,让经验成为项目的底气。

05 / 积累

成品项目多

丰富的项目积累,为不同场景提供更多成熟参考。

06 / 费用

无任何增加费用

费用明晰透明,合作过程清楚放心。

07 / 口碑

行业良好的口碑

用交付与服务积累认可,珍惜每一次客户推荐。

08 / 售后

完善的售后机制

项目交付后持续提供服务,让系统使用更安心。

09 / 交付

源码交付,自主掌握

项目源码完整交付,后续维护与迭代自主掌握。

我们的服务

软件系统开发

围绕业务流程,提供软件系统设计与开发服务。

小程序开发

结合使用场景,提供小程序设计与功能开发服务。

高端网站建设

结合品牌展示与业务需求,提供网站设计与建设服务。

物联网 / API 对接

连接设备与业务系统,提供接口集成与数据对接服务。

SELECTED WORK

推荐案例,让想法落地

更多项目案例

在线客服

扫码联系客服

3985758

回到顶部