[北京网站制作]Clojure语言叫板Scala语言 我们不怕内存溢出
我在这里是想跟大家分享一些从World Singles 系统里获得的经验 …
早在2009年11月,我们就开始使用Scala语言了。我们有一个需要运行很长时间的操作,把大量的数据变更信息从会员信息数据库中取出,以XML打包文件的形式发送到自定义搜索引擎里。把一大堆的数据表从数据库中映射到XML规则文件里是一个相当复杂的操作。在过去,公司尝试了各种方法,有的好用,有的不好用。我向公司推荐使用Scala语言,原因是他的高效、并行性、类型安全,以及方便适用(特别是XML在Scala语言里有一种相对应的基本数据类型)。
我们使用Scala编程作为产品的后台发布程序已经有差不多两年了。大多时候,它运行的非常好,但在压力大的时候,它会出现内存溢出的现象,经过大量的观察和测试,我们慢慢的确认,(至少部分原因)是Scala语言本身的实现导致了这个问题。Scala正准备要收编Akka程序库,我们一直在考虑把程序迁移到Akka上…
因为今年我们开始使用Clojure语言(大概是去年5月我们就开始尝试这种语言),我们认为应该集中兵力开发出一个Clojure版本的Scala程序,看看它运行起来表现如何。
这个Clojure版的后台发布程序的开发耗费了我们大概15个小时,并通过了所有测试。今天我们进行了一次“疲劳测试”,让它一次处理将近30万个会员的信息。如果是Scala程序,当一次处理的数据量达到5万份时(有时会更少),它就会报内存溢出错误。而Clojure程序却一气呵成,十分顺利——于是,我们就决定在下一次产品发布里用它把Scala程序给替换下来了。
另外一个有趣的方面是,Scala版的程序长度总共大约有1000行(大概有3.1万个字符)。而Clojure版的只有260行(大约1.15万个字符)。就连注释也简单了(*呃哼*—这并不是我想炫耀的,只是想说这种比较没有偏向)。我们的比较还没有把单元测试代码计算入内,因为Clojure版写的很仓促。Clojure的代码形式非常的接近Scala代码,很多函数都相同——Clojure是一种更强大的Scala——它对一些辅助函数进行的重构,使其变的更加模块化和可维护。(北京网站制作)
结果是很显然,我将在产品里采用Clojure版的发布程序,完全的放弃Scala。
这是Rich Hickey(Clojure语言的发明人) 和 Clojure/core 开发团队的功劳,他们创造了这样一种精彩适用的编程语言,帮人们解决了大问题——谢谢你们!
标签:北京网站制作 高端网站建设
推荐新闻
更多行业-
[北京网站制作]《财富》40岁以下富豪榜发布 扎克伯格居榜首
北京时间10月20日消息,据国外媒体报道,Facebook首席执行官马...
2011-10-21 -
国际学校网站栏目结构有哪些?
一个清晰而有组织的网站栏目结构对于国际学校来说至关重要。一个好的网站栏...
2023-07-10 -
网站设计制作规范
我们一贯坚持,网站是一个工具,是给浏览者使用的,网站的一切都必须围绕浏...
2012-07-13 -
淄博网站建设优化工作必须坚持不懈
有一句话叫“四个地方”,分为“四个地方”的标题、描述和标签,页面内容的...
2021-07-13 -
影响企业网站建设成本的因素有哪些?
说到网站创建,公司一般都会关注网站报价。在选择建站公司之前,他们通常会...
2020-10-14 -
电子商务网上商城网站建设方案
商城网站建设除了能满足购物者的需求外,还能帮助商城商家开拓商业渠道。因...
2012-07-22
预约专业咨询顾问沟通!
免责声明
非常感谢您访问我们的网站。在您使用本网站之前,请您仔细阅读本声明的所有条款。
1、本站部分内容来源自网络,涉及到的部分文章和图片版权属于原作者,本站转载仅供大家学习和交流,切勿用于任何商业活动。
2、本站不承担用户因使用这些资源对自己和他人造成任何形式的损失或伤害。
3、本声明未涉及的问题参见国家有关法律法规,当本声明与国家法律法规冲突时,以国家法律法规为准。
4、如果侵害了您的合法权益,请您及时与我们,我们会在第一时间删除相关内容!
联系方式:010-60259772
电子邮件:394588593@qq.com