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