背景
相信很多開發(fā)者跟我一樣,在github上clone的時(shí)候,那速度基本穩(wěn)定在20k/s一下,這速度穩(wěn)如老狗。
當(dāng)克隆一些大一點(diǎn)的倉庫的時(shí)候,以這個(gè)烏龜級(jí)別的速度,很容易出現(xiàn)clone超時(shí)的錯(cuò)誤,等了n久之后下載n%的內(nèi)容一夜回到解放前。相信很多人都經(jīng)歷過這么操蛋的過程。
其實(shí)為了加速也有幾種方式:
通過購買梯子,***出去,這個(gè)速度可以提升。--- 花錢買速度
使用谷歌瀏覽器,下載加速插件。這個(gè)規(guī)定了瀏覽器。--- 綁定瀏覽器
使用gitee,這是國內(nèi)的開源代碼管理網(wǎng)站,所以他的下載速度非常快,gitee支持從github代碼倉導(dǎo)入碼云倉庫。--- 需等待同步
除了上面的加速方式,博主推薦另外一個(gè)方法--Gitclone.com
什么是Gitclone.com
Gitclone.com 是一個(gè) github.com 緩存加速網(wǎng)站,通過對(duì)經(jīng)常訪問的github的代碼庫的緩存,加速從github的git clone操作。當(dāng)您采用git clone https://gitclone.com/github.com/yourrepository 的方式clone代碼庫時(shí),Gitclone.com 會(huì)建立一個(gè)mirror,以后再有開發(fā)者clone時(shí),就能利用上mirror緩存,使得clone速度得到很大的提升,一般從github上git clone只能達(dá)到20k/s的速度,經(jīng)Gitclone.com加速后,可以達(dá)到1.2M/s。
分布式廣泛參與的機(jī)制:github代碼庫緩存需要大量的存儲(chǔ)資源,依靠單個(gè)計(jì)算節(jié)點(diǎn)難以滿足存儲(chǔ)的需求,所以 Gitclone.com 已建立起4個(gè)初始驗(yàn)證節(jié)點(diǎn)的分布式系統(tǒng),也提供了開發(fā)者將自己的機(jī)器加入緩存資源的機(jī)制。隨著Gitclone開源生態(tài)的逐步完善,開始建立 Gitclone.com 的第五個(gè)緩存節(jié)點(diǎn)!
Gitclone.com工作機(jī)理
對(duì)于國內(nèi)從github上clone代碼庫是一件耗時(shí)的事,對(duì)于稍微大一點(diǎn)的代碼庫,clone速度平均只有20k ~ 40k/s,有時(shí)甚至?xí)陆档絺€(gè)位數(shù),clone時(shí)會(huì)反復(fù)超時(shí),雖然網(wǎng)上有一些介紹改hosts之類的提速方法,但當(dāng)試過以后會(huì)發(fā)現(xiàn)收效甚微,要想提高clone速度,可行的方法主要還是緩存機(jī)制。
當(dāng)開發(fā)者第一次經(jīng) Gitclone.com 代理clone項(xiàng)目時(shí),Gitclone.com 異步鏡像項(xiàng)目,以后有開發(fā)者clone該項(xiàng)目時(shí),就會(huì)利用上 Gitclone.com 的本地鏡像,而不是從 Github.com 上clone。
Gitclone.com 會(huì)在每天夜間與 github.com 同步。
為了解決不斷增長(zhǎng)的鏡像對(duì)硬盤資源的需求,Gitclone.com 采用區(qū)塊鏈集群方式擴(kuò)展,每次的鏡像操作都會(huì)廣播到集群中所有服務(wù)器,各服務(wù)器可選擇生成鏡像并登記以便以響應(yīng)后續(xù)的clone請(qǐng)求。
同時(shí),Gitclone.com 還對(duì) stackoverflow.com 和go get等的加速訪問進(jìn)行了說明,做到“為開發(fā)者服務(wù)”。
Gitclone.com 已對(duì) github.com 上star >10000的代碼庫進(jìn)行了緩存,并已開始對(duì)star > 3000代碼庫的緩存,對(duì)于未緩存過的代碼庫,開發(fā)者只要通過 Gitclone.com 進(jìn)行clone,就會(huì)建立起永久的緩存,以后其他開發(fā)者clone時(shí),就會(huì)利用上緩存。開發(fā)者使用越多,緩存命中率越大,越clone越快。
Gitclone.com使用方法
Gitclone.com使用方法非常簡(jiǎn)單,它是通過開發(fā)者的clone動(dòng)作,建立起github的分布式緩存,并提供對(duì)github的鏡像功能,為程序員服務(wù)。不需要繁瑣的fork或?qū)牍ぷ?,只需要將clone命令增加--gitclone.com/,就可以達(dá)到1.27M/s的clone速度。如:
下載github上的代碼--as7341:
使用Github原始命令進(jìn)行clone,速度為60K左右:
gitclonehttps://github.com/RiceChen/as7341.git
使用Gitclone命令驚醒clone,速度提升到150K:
gitclonehttps://gitclone.com/github.com/RiceChen/as7341.git
從上面的clone速度數(shù)據(jù)看,提升了2.5倍的速度。這對(duì)于開發(fā)者是非常友好的。
總結(jié)
1. Gitclone.com也不是完全完美的,如果倉庫的star小于10000的,或者前人沒有下載過的,也就是沒有緩存,那么下載也是緩慢的。 2. 如果前人通過Gitclone.com下載過的倉庫,對(duì)于后面的開發(fā)者同樣使用Gitclone.com將非常友好。速度將會(huì)提升很多。
文章出處:Rice 嵌入式開發(fā)技術(shù)分享 歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
審核編輯 黃昊宇
-
GitHub
+關(guān)注
關(guān)注
3文章
461瀏覽量
16237
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論