我用golang重寫了2300+star的開源node專案.

nilman發表於2017-12-13

我很早前用node寫了這開源專案:p2pspider,因為網路流量非常巨大,再加上v8有記憶體限制,我不得不每隔6小時重啟,而且cpu佔用非常之高,16核的cpu,都差不多佔滿了,記憶體也是佔用極其高。

在後期維護過程中,因為javascript的原因,發現極其難以維護,讓我產生了用靜態語言重寫的念頭。在研究了一些各種主流程式語言,最後選擇了golang。 選它主要看中三點:1,語法極其簡單;2,goroutine;3,執行速度極其快。

花了十幾天左右,就重寫完成,一執行,在同樣工作效率的情況下,golang版本的p2pspider的綜合消耗,遠遠低於node版,只有node的10%,這很出乎我的意料,畢竟是第一次寫golang程式,很可能寫得很粗糙。

由於對golang不是很熟,中間踩了很多坑,在此不表了。總之,golang是個很讚的程式語言。

相關文章