代碼托管,哪家強?
開發者服務市場最近突然火爆起來了,各種云服務層出不窮,就以最基本的代碼托管服務為例,國內也有好多家,我挑了幾家主流的做了一個橫向評測,以供各位碼農參考。
一、性能測試
我們用代碼托管服務一般有兩種訪問方式,客戶端以及 Web 端。客戶端一般用來拉/推代碼,在實際測試的過程中發現,客戶端操作在不同的服務商那里差異性非常小,所以就沒有整理成報告。主要的體驗不同在 Web 端。
我分別從北京和廣東兩個地方進行了一系列常用的 Web 端操作,記錄了時間。我選取了10個不同的開源項目,有大有小,對這些項目分別進行同樣的操作做對比。測試的數據和過程我全部列出來了,有興趣的可以用同樣的方法在你的環境中測試,我相信得到的數據應該是類似的。
1、測試環境
l 主機:青云主機,2核/2G RAM
l 網絡:2Mbps出(由于是服務器,入口帶寬應該很大的,具體數據未知)
l 操作系統:Microsoft Windows 2003 R2 32Bits
l 瀏覽器:Mozilla Firefox 32.0.3
2、測試內容
(1)打開項目的代碼目錄樹
(2)打開項目單個文件查看代碼
(3)打開commit列表頁
(4)打開commit詳情頁
3、測試結果
l 地域:北京
(1)打開項目的代碼目錄樹
(2)打開項目單個文件查看代碼
(3)打開commit列表頁
l 地域:廣東
(1)打開項目的代碼目錄樹
(2)打開項目單個文件查看代碼
(3)打開commit列表頁
(4)打開commit詳情頁
4、結果說明
l 上述測試結果數據的單位為秒,數值越小越好。
l Coding 的 Commit 詳情頁的打開速度在圖表上基本看不到是因為數值太小(特別是北京),我懷疑跟預先做了相關的緩存有關。
l 由于下行網速比較大,所以傳輸耗時可以忽略,測試數據可以大致等同于服務器處理并輸出數據所用的時間。
l 我不是很能理解為啥 git@osc 和 csdn 都是用的 gitlab 但是性能差異這么大。
l Github 的數據需要考慮墻的因素。
l 各服務商及不同頁面的加載方式對比:
一、功能測試
我這里列出了常用的代碼托管服務的功能,做了一個表格,清晰明了。可能有某些功能遺漏,歡迎來信告知。
這里有幾點需要說明:
1.私有項目的 Pull Request,Coding.net 是通過 Merge Request 實現的,名字不同,功能一樣的。
2.保護分支看起來是 Coding.net 專門為團隊協作開發的,某些分支只有某些賬戶具有寫操作,防止開發中的誤操作。
3. 兼容 SVN 似乎全世界只有 github 實現了。
4.代碼質量分析 Coding.net 和 git@osc 都是通過 Sonar 實現的,Coding .net 支持的語言多一些,但分析的質量都很一般。
一、結果分析
從功能性上講,大家都差不了太多,github 的功能是最全面的,CSDN 和 gitcafe 的功能稍微欠缺一些。從性能上來講 Coding.net 具有明顯的優勢,有可能跟 Coding 是用 Java自己開發的有關。據我了解,CSDN 和 git@osc 是用 gitlab 搭的,Ruby 平臺,gitcafe,github 是用 Ruby 自己開發的。我感覺拋開墻的因素,github 的總體數據應該不會比 Coding 差。無意挑起語言之爭,只是對這里的性能差異的一個猜測,也有可能是算法優化不同,跟語言平臺無關。從前端代碼來看 Coding 和 github 都大量采用了 Ajax,對速度和體驗也有幫助。
那么,問題來了,代碼托管哪家強?