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