成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

[成都網(wǎng)站制作]Clojure語言叫板Scala語言我們不怕內(nèi)存溢出

2023-02-02    分類: 網(wǎng)站建設(shè)

我在這里是想跟大家分享一些從World Singles 系統(tǒng)里獲得的經(jīng)驗(yàn) …

早在2009年11月,我們就開始使用Scala語言了。我們有一個(gè)需要運(yùn)行很長時(shí)間的操作,把大量的數(shù)據(jù)變更信息從會(huì)員信息數(shù)據(jù)庫中取出,以XML打包文件的形式發(fā)送到自定義搜索引擎里。把一大堆的數(shù)據(jù)表從數(shù)據(jù)庫中映射到XML規(guī)則文件里是一個(gè)相當(dāng)復(fù)雜的操作。在過去,公司嘗試了各種方法,有的好用,有的不好用。我向公司推薦使用Scala語言,原因是他的高效、并行性、類型安全,以及方便適用(特別是XML在Scala語言里有一種相對(duì)應(yīng)的基本數(shù)據(jù)類型)。

我們使用Scala編程作為產(chǎn)品的后臺(tái)發(fā)布程序已經(jīng)有差不多兩年了。大多時(shí)候,它運(yùn)行的非常好,但在壓力大的時(shí)候,它會(huì)出現(xiàn)內(nèi)存溢出的現(xiàn)象,經(jīng)過大量的觀察和測(cè)試,我們慢慢的確認(rèn),(至少部分原因)是Scala語言本身的實(shí)現(xiàn)導(dǎo)致了這個(gè)問題。Scala正準(zhǔn)備要收編Akka程序庫,我們一直在考慮把程序遷移到Akka上…

因?yàn)榻衲晡覀冮_始使用Clojure語言(大概是去年5月我們就開始嘗試這種語言),我們認(rèn)為應(yīng)該集中兵力開發(fā)出一個(gè)Clojure版本的Scala程序,看看它運(yùn)行起來表現(xiàn)如何。

這個(gè)Clojure版的后臺(tái)發(fā)布程序的開發(fā)耗費(fèi)了我們大概15個(gè)小時(shí),并通過了所有測(cè)試。今天我們進(jìn)行了一次“疲勞測(cè)試”,讓它一次處理將近30萬個(gè)會(huì)員的信息。如果是Scala程序,當(dāng)一次處理的數(shù)據(jù)量達(dá)到5萬份時(shí)(有時(shí)會(huì)更少),它就會(huì)報(bào)內(nèi)存溢出錯(cuò)誤。而Clojure程序卻一氣呵成,十分順利——于是,我們就決定在下一次產(chǎn)品發(fā)布里用它把Scala程序給替換下來了。

另外一個(gè)有趣的方面是,Scala版的程序長度總共大約有1000行(大概有3.1萬個(gè)字符)。而Clojure版的只有260行(大約1.15萬個(gè)字符)。就連注釋也簡單了(*呃哼*—這并不是我想炫耀的,只是想說這種比較沒有偏向)。我們的比較還沒有把單元測(cè)試代碼計(jì)算入內(nèi),因?yàn)镃lojure版寫的很倉促。Clojure的代碼形式非常的接近Scala代碼,很多函數(shù)都相同——Clojure是一種更強(qiáng)大的Scala——它對(duì)一些輔助函數(shù)進(jìn)行的重構(gòu),使其變的更加模塊化和可維護(hù)。(成都網(wǎng)站制作)

結(jié)果是很顯然,我將在產(chǎn)品里采用Clojure版的發(fā)布程序,完全的放棄Scala。

這是Rich Hickey(Clojure語言的發(fā)明人) 和 Clojure/core 開發(fā)團(tuán)隊(duì)的功勞,他們創(chuàng)造了這樣一種精彩適用的編程語言,幫人們解決了大問題——謝謝你們!


標(biāo)簽:成都網(wǎng)站制作 高端網(wǎng)

新聞名稱:[成都網(wǎng)站制作]Clojure語言叫板Scala語言我們不怕內(nèi)存溢出
文章轉(zhuǎn)載:http://jinyejixie.com/news17/234117.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、App開發(fā)自適應(yīng)網(wǎng)站、定制網(wǎng)站、全網(wǎng)營銷推廣、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
九龙城区| 安吉县| 柳州市| 东方市| 枞阳县| 深圳市| 若羌县| 肇源县| 太康县| 桑植县| 延边| 关岭| 边坝县| 宁南县| 蒲江县| 东安县| 肇源县| 托里县| 清远市| 高邮市| 八宿县| 佳木斯市| 孟村| 三门县| 昌都县| 威宁| 来凤县| 读书| 承德县| 望江县| 武陟县| 雷波县| 涪陵区| 夹江县| 庄浪县| 迁安市| 娱乐| 平谷区| 来安县| 吉林省| 广昌县|