我用golang重寫了2300+star的開源node專案.
我很早前用node寫了這開源專案:p2pspider,因為網路流量非常巨大,再加上v8有記憶體限制,我不得不每隔6小時重啟,而且cpu佔用非常之高,16核的cpu,都差不多佔滿了,記憶體也是佔用極其高。
在後期維護過程中,因為javascript的原因,發現極其難以維護,讓我產生了用靜態語言重寫的念頭。在研究了一些各種主流程式語言,最後選擇了golang。 選它主要看中三點:1,語法極其簡單;2,goroutine;3,執行速度極其快。
花了十幾天左右,就重寫完成,一執行,在同樣工作效率的情況下,golang版本的p2pspider的綜合消耗,遠遠低於node版,只有node的10%,這很出乎我的意料,畢竟是第一次寫golang程式,很可能寫得很粗糙。
由於對golang不是很熟,中間踩了很多坑,在此不表了。總之,golang是個很讚的程式語言。
相關文章
- 我寫了一個開源專案AlphabetPyAlphabet
- 我最近寫了個開源專案Datura
- 分享個 golang 開源小專案Golang
- 怎麼寫開源專案的README
- Rocketgraph:用Golang編寫的Firebase的開源替代品Golang
- Cromwell CMS:使用Next.js重寫的全新WordPress免費開源專案JS
- 今年我讀了四個開源專案的原始碼,來分享下心得原始碼
- 我們分析了近10000個Python開源專案,精選出最實用的Top5!Python
- GitHub實用開源專案Github
- 開源專案:採用 Laravel 編寫的一個聊天應用 Laravel-ChatLaravel
- 50天用react.js重寫50個web專案,我學到了什麼?ReactJSWeb
- 接手了一個外包開發的專案,我感覺我的頭快要裂開了~
- 這些年我開源的幾個小專案
- 我的 FlutterUnit 開源專案竟然被套殼商用了Flutter
- 疫情期間,我通過專案重學了小程式
- Revolt:用Rust 編寫的替代Discord之類聊天室的開源專案Rust
- 為了讓初學者有專案可入門,我整理了這23個開源專案……
- 用node開發一個生成react專案的cli工具React
- 我用go-zero開發了第一個線上專案Go
- 那些年的開源專案,你跑起來了嗎?
- 一個令人驚豔的ChatGPT專案,開源了!ChatGPT
- 我參與 Seata 開源專案的一些感悟
- 如何為我們的開源專案建立完美的 README?
- 我的第一個開源專案 Kiwis2 MockserverMockServer
- Hi,我是ChunJun,一個有趣好用的開源專案
- 老闆說laravel太慢讓我用rust寫web重構公司幾年前的專案怎麼辦?LaravelRustWeb
- 我沒有前端經驗,但1天就搞定了開源專案主頁前端
- Spring Boot 2.0 版的開源專案雲收藏來了!Spring Boot
- 神了!兩個開源的高仿外賣專案!
- 我用開源工具給女朋友寫道歉信!開源工具
- 使用 SmartIDE 開發golang專案IDEGolang
- 我寫了本開源書:《3D程式設計模式》3D程式設計設計模式
- 我是如何把 GitHub 開源專案做到 5300+ star 的Github
- 我們在開源專案中是怎樣埋彩蛋的
- 如何快速自學開源專案?試試我的訣竅
- 關於我在學習LFU的時候,在開源專案撿了個漏這件事。
- 6個開源專案+Node.js中文教程讓Mixin Messenger 應用開發無難度Node.jsMessenger
- 我不服!這開源專案居然才888個星!?
- 用 Golang 重構了下自己站 (以前 Laravel 版本)GolangLaravel