99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Ceph最新的EC-CLAY插件調(diào)研

Ceph對(duì)象存儲(chǔ)方案 ? 來源:Ceph對(duì)象存儲(chǔ)方案 ? 作者:Ceph對(duì)象存儲(chǔ)方案 ? 2021-01-03 10:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

CLAY 簡介

Clay Codes ( Clay Codes: Moulding MDS Codes to Yield an MSR Code ) 是FAST18 上提出的一種編碼方法,文章地址,Clay 碼能夠?qū)⒁话愕腗DS 碼(最優(yōu)容錯(cuò))轉(zhuǎn)化為具有最優(yōu)修復(fù)的編碼方法,具有以下性質(zhì):

Minimum Storage (最小存儲(chǔ)開銷,同經(jīng)典RS碼和最小存儲(chǔ)再生碼,MSR)
Maximum Failure Tolerance(最大容錯(cuò),即 (n,k)-Clay 碼可以容任意n-k 失效)
Optimal Repair Bandwidth (最優(yōu)修復(fù)開銷,能夠達(dá)到理論最優(yōu)值)
All-Node Optimal Repair (最小開銷修復(fù)所有節(jié)點(diǎn)的數(shù)據(jù),包括原始數(shù)據(jù)和校驗(yàn)數(shù)據(jù))
Disk Read Optimal (最優(yōu)磁盤讀)
Low Sub-packetization (低分包數(shù),即碼字長度短)

參考資料1//blog.foool.net/2018/05/clay-codes-%E4%BB%8E%E7%94%9F%E6%88%90%E7%9F%A9%E9%98%B5%E7%9A%84%E8%A7%92%E5%BA%A6%E6%9D%A5%E7%9C%8B/

參考資料2//blog.acolyer.org/2018/03/01/clay-codes-moulding-mds-codes-to-yield-an-msr-code/

ceph官方的介紹,可以確認(rèn)以下幾點(diǎn):

  • 向下兼容:CLAY插件與jerasure、ISA、SHEC插件兼容,這里可以理解為Clay是在這幾個(gè)插件的基礎(chǔ)上做的一層更高層面的數(shù)據(jù)組成抽象,能夠更加細(xì)致的控制數(shù)據(jù)的分布粒度,從而實(shí)現(xiàn)對(duì)原有的幾個(gè)插件在數(shù)據(jù)恢復(fù)場景下的性能優(yōu)化。這也就是是上面提到的“Clay 碼能夠?qū)⒁话愕腗DS 碼(最優(yōu)容錯(cuò))轉(zhuǎn)化為具有最優(yōu)修復(fù)的編碼方法”。

  • 修復(fù)性能優(yōu)化"在底層已有的jerasure、ISA、SHEC幾個(gè)的插件基礎(chǔ)上,做了編碼優(yōu)化,能夠在異常發(fā)生,需要進(jìn)行數(shù)據(jù)恢復(fù)的情況下顯著的降低磁盤&網(wǎng)絡(luò)帶寬的消耗。這個(gè)也是CLAY EC插件的最大價(jià)值所在。

  • 從Ceph 14版本開始提供,理論上這個(gè)特性可以向下backport到低版本。

從clay插件的初始化配置部分的函數(shù)實(shí)現(xiàn),也能看到一些與其他插件在兼容適配上的限制

#src/erasure-code/clay/ErasureCodeClay.cc

intErasureCodeClay::parse(ErasureCodeProfile&profile,
ostream*ss)
{
interr=0;
err=ErasureCode::parse(profile,ss);
err|=to_int("k",profile,&k,DEFAULT_K,ss);
err|=to_int("m",profile,&m,DEFAULT_M,ss);

err|=sanity_check_k_m(k,m,ss);

err|=to_int("d",profile,&d,std::to_string(k+m-1),ss);

//checkforscalar_mdsinprofileinput
//默認(rèn)采用jerasure插件進(jìn)行編碼
if(profile.find("scalar_mds")==profile.end()||
profile.find("scalar_mds")->second.empty()){
mds.profile["plugin"]="jerasure";
pft.profile["plugin"]="jerasure";
}else{
std::stringp=profile.find("scalar_mds")->second;
//底層只支持jerasure、isa、shec三種插件
if((p=="jerasure")||(p=="isa")||(p=="shec")){
mds.profile["plugin"]=p;
pft.profile["plugin"]=p;
}else{
*ss<"scalar_mds"<"plugin"]<<
???????????????"isnotcurrentlysupported,useoneof'jerasure',"<<
???????????????"'isa','shec'"<std::endl;
err=-EINVAL;
returnerr;
}
}



if(profile.find("technique")==profile.end()||
profile.find("technique")->second.empty()){
if((mds.profile["plugin"]=="jerasure")||(mds.profile["plugin"]=="isa")){
mds.profile["technique"]="reed_sol_van";
pft.profile["technique"]="reed_sol_van";
}else{
mds.profile["technique"]="single";
pft.profile["technique"]="single";
}
}else{
std::stringp=profile.find("technique")->second;
//Supportedtechniquesare‘reed_sol_van’,‘reed_sol_r6_op’,‘cauchy_orig’,‘cauchy_good’,‘liber8tion’forjerasure,
if(mds.profile["plugin"]=="jerasure"){
if((p=="reed_sol_van")||(p=="reed_sol_r6_op")||(p=="cauchy_orig")
||(p=="cauchy_good")||(p=="liber8tion")){
mds.profile["technique"]=p;
pft.profile["technique"]=p;
}else{
*ss<"technique"<"isnotcurrentlysupported,useoneof"
<"reed_sol_van','reed_sol_r6_op','cauchy_orig',"
<"'cauchy_good','liber8tion'"<std::endl;
err=-EINVAL;
returnerr;
}
//‘reed_sol_van’,‘cauchy’forisa
}elseif(mds.profile["plugin"]=="isa"){
if((p=="reed_sol_van")||(p=="cauchy")){
mds.profile["technique"]=p;
pft.profile["technique"]=p;
}else{
*ss<"technique"<"isnotcurrentlysupported,useoneof"
<"'reed_sol_van','cauchy'"<std::endl;
err=-EINVAL;
returnerr;
}
}else{
//‘single’,‘multiple’forshec.
if((p=="single")||(p=="multiple")){
mds.profile["technique"]=p;
pft.profile["technique"]=p;
}else{
*ss<"technique"<"isnotcurrentlysupported,useoneof"<<
???????????????"'single','multiple'"<std::endl;
err=-EINVAL;
returnerr;
}
}
}
if((dk+m-1)){
*ss<"valueofd"<"mustbewithin["<","<-1<"]"<std::endl;
err=-EINVAL;
returnerr;
}

q=d-k+1;
if((k+m)%q){
nu=q-(k+m)%q;
}else{
nu=0;
}
//注意分塊規(guī)則限定k+m+nu總和不能超過254
if(k+m+nu>254){
err=-EINVAL;
returnerr;
}

if(mds.profile["plugin"]=="shec"){
mds.profile["c"]='2';
pft.profile["c"]='2';
}
mds.profile["k"]=std::to_string(k+nu);
mds.profile["m"]=std::to_string(m);
mds.profile["w"]='8';

pft.profile["k"]='2';
pft.profile["m"]='2';
pft.profile["w"]='8';

t=(k+m+nu)/q;
sub_chunk_no=pow_int(q,t);

dout(10)<"(q,t,nu)=("<","<","<")"<returnerr;
}

故障恢復(fù)時(shí)的帶寬&磁盤消耗對(duì)比

以EC場景下,假設(shè) d = 發(fā)生故障時(shí),需要參與數(shù)據(jù)恢復(fù)的OSD數(shù)量
在jerasure配置 k=8 m=4的情況下,發(fā)生一塊磁盤故障,需要讀取d=8磁盤才能完成數(shù)據(jù)的恢復(fù)。如果需要恢復(fù)的數(shù)據(jù)的容量為1G,那么需要總共讀取 8 x 1 GB = 8GB的數(shù)據(jù)容量(這也意味著需要同時(shí)通過網(wǎng)絡(luò)傳輸8GB的數(shù)據(jù))。
在clay的插件配置中,d的設(shè)置需要滿足 k+1 <= d <= k+m-1 的限制,為了滿足使d最大化節(jié)省磁盤和網(wǎng)絡(luò)帶寬消耗,clay選取d=k+m-1作為默認(rèn)配置。在k=8,m=4的場景下,根據(jù)公式推導(dǎo)可以得到d=8+4-1=11。其中磁盤需要恢復(fù)的數(shù)據(jù)量計(jì)算公式如下。其中K為故障時(shí)刻需要恢復(fù)的數(shù)據(jù)總量。

c9925692-4655-11eb-8b86-12bb97331649.jpg

當(dāng)一個(gè)osd故障時(shí),d=11,以需要恢復(fù)的數(shù)據(jù)總量為1GB為例,此時(shí)需要恢復(fù)下載的磁盤數(shù)據(jù)總量為

jerasure/isa=8*1GB=8GB
caly=(11*1GB)/(11-8+1)=11/4=2.75GB

對(duì)比看到caly能夠顯著的減少磁盤讀取數(shù)據(jù)和網(wǎng)絡(luò)傳輸帶寬的消耗,caly只用到了isa一類插件的的2.75/8≈34%的資源消耗。

同樣的場景下,以k=4,m=2為例,此時(shí)d=4+2-1=5,caly只用到了isa一類插件的的2.5/4≈62.5%的資源消耗。

jerasure/isa=4*1GB=4GB
caly=(5*1GB)/(5-4+1)=5/2=2.5GB

依次類推,匯總表格如下:

名稱 K M D 3副本得盤率 EC得盤率 硬件成本節(jié)約比率 磁盤數(shù)據(jù)遷移量(ISA) 磁盤數(shù)據(jù)遷移量(CLAY) 數(shù)據(jù)恢復(fù)負(fù)載降低比率 4M sub-chunk size(KB) sub-chunk count
2+1 2 1 2 33.33333333 66.66666667 200 2 2 0 2048 1
2+2 2 2 3 33.33333333 50 150 2 1.5 25 512 4
3+1 3 1 3 33.33333333 75 225 3 3 0 1365.333333 1
3+2 3 2 4 33.33333333 60 180 3 2 33.33333333 170.6666667 8
3+3 3 3 5 33.33333333 50 150 3 1.666666667 44.44444444 151.7037037 9
4+1 4 1 4 33.33333333 80 240 4 4 0 1024 1
4+2 4 2 5 33.33333333 66.66666667 200 4 2.5 37.5 128 8
4+3 4 3 6 33.33333333 57.14285714 171.4285714 4 2 50 37.92592593 27
4+4 4 4 7 33.33333333 50 150 4 1.75 56.25 64 16
5+1 5 1 5 33.33333333 83.33333333 250 5 5 0 819.2 1
5+2 5 2 6 33.33333333 71.42857143 214.2857143 5 3 40 51.2 16
5+3 5 3 7 33.33333333 62.5 187.5 5 2.333333333 53.33333333 30.34074074 27
5+4 5 4 8 33.33333333 55.55555556 166.6666667 5 2 60 12.8 64
5+5 5 5 9 33.33333333 50 150 5 1.8 64 32.768 25
6+1 6 1 6 33.33333333 85.71428571 257.1428571 6 6 0 682.6666667 1
6+2 6 2 7 33.33333333 75 225 6 3.5 41.66666667 42.66666667 16
6+3 6 3 8 33.33333333 66.66666667 200 6 2.666666667 55.55555556 25.28395062 27
6+4 6 4 9 33.33333333 60 180 6 2.25 62.5 10.66666667 64
6+5 6 5 10 33.33333333 54.54545455 163.6363636 6 2 66.66666667 5.461333333 125
6+6 6 6 11 33.33333333 50 150 6 1.833333333 69.44444444 18.96296296 36
7+1 7 1 7 33.33333333 87.5 262.5 7 7 0 585.1428571 1
7+2 7 2 8 33.33333333 77.77777778 233.3333333 7 4 42.85714286 18.28571429 32
7+3 7 3 9 33.33333333 70 210 7 3 57.14285714 7.223985891 81
7+4 7 4 10 33.33333333 63.63636364 190.9090909 7 2.5 64.28571429 9.142857143 64
7+5 7 5 11 33.33333333 58.33333333 175 7 2.2 68.57142857 4.681142857 125
7+6 7 6 12 33.33333333 53.84615385 161.5384615 7 2 71.42857143 2.708994709 216
7+7 7 7 13 33.33333333 50 150 7 1.857142857 73.46938776 11.94169096 49
8+1 8 1 8 33.33333333 88.88888889 266.6666667 8 8 0 512 1
8+2 8 2 9 33.33333333 80 240 8 4.5 43.75 16 32
8+3 8 3 10 33.33333333 72.72727273 218.1818182 8 3.333333333 58.33333333 6.320987654 81
8+4 8 4 11 33.33333333 66.66666667 200 8 2.75 65.625 8 64
8+5 8 5 12 33.33333333 61.53846154 184.6153846 8 2.4 70 4.096 125
8+6 8 6 13 33.33333333 57.14285714 171.4285714 8 2.166666667 72.91666667 2.37037037 216
8+7 8 7 14 33.33333333 53.33333333 160 8 2 75 1.49271137 343
8+8 8 8 15 33.33333333 50 150 8 1.875 76.5625 8 64
9+1 9 1 9 33.33333333 90 270 9 9 0 455.1111111 1
9+2 9 2 10 33.33333333 81.81818182 245.4545455 9 5 44.44444444 7.111111111 64
9+3 9 3 11 33.33333333 75 225 9 3.666666667 59.25925926 5.618655693 81
9+4 9 4 12 33.33333333 69.23076923 207.6923077 9 3 66.66666667 1.777777778 256
9+5 9 5 13 33.33333333 64.28571429 192.8571429 9 2.6 71.11111111 3.640888889 125
9+6 9 6 14 33.33333333 60 180 9 2.333333333 74.07407407 2.106995885 216
9+7 9 7 15 33.33333333 56.25 168.75 9 2.142857143 76.19047619 1.326854551 343
9+8 9 8 16 33.33333333 52.94117647 158.8235294 9 2 77.77777778 0.888888889 512
9+9 9 9 17 33.33333333 50 150 9 1.888888889 79.01234568 5.618655693 81
10+1 10 1 10 33.33333333 90.90909091 272.7272727 10 10 0 409.6 1
10+2 10 2 11 33.33333333 83.33333333 250 10 5.5 45 6.4 64
10+3 10 3 12 33.33333333 76.92307692 230.7692308 10 4 60 1.685596708 243
10+4 10 4 13 33.33333333 71.42857143 214.2857143 10 3.25 67.5 1.6 256
10+5 10 5 14 33.33333333 66.66666667 200 10 2.8 72 3.2768 125
10+6 10 6 15 33.33333333 62.5 187.5 10 2.5 75 1.896296296 216
10+7 10 7 16 33.33333333 58.82352941 176.4705882 10 2.285714286 77.14285714 1.194169096 343
10+8 10 8 17 33.33333333 55.55555556 166.6666667 10 2.125 78.75 0.8 512
10+9 10 9 18 33.33333333 52.63157895 157.8947368 10 2 80 0.561865569 729
10+10 10 10 19 33.33333333 50 150 10 1.9 81 4.096 100
11+1 11 1 11 33.33333333 91.66666667 275 11 11 0 372.3636364 1
11+2 11 2 12 33.33333333 84.61538462 253.8461538 11 6 45.45454545 2.909090909 128
11+3 11 3 13 33.33333333 78.57142857 235.7142857 11 4.333333333 60.60606061 1.532360643 243
11+4 11 4 14 33.33333333 73.33333333 220 11 3.5 68.18181818 1.454545455 256
11+5 11 5 15 33.33333333 68.75 206.25 11 3 72.72727273 0.595781818 625
11+6 11 6 16 33.33333333 64.70588235 194.1176471 11 2.666666667 75.75757576 1.723905724 216
11+7 11 7 17 33.33333333 61.11111111 183.3333333 11 2.428571429 77.92207792 1.085608269 343
11+8 11 8 18 33.33333333 57.89473684 173.6842105 11 2.25 79.54545455 0.727272727 512
11+9 11 9 19 33.33333333 55 165 11 2.111111111 80.80808081 0.510786881 729
11+10 11 10 20 33.33333333 52.38095238 157.1428571 11 2 81.81818182 0.372363636 1000
11+11 11 11 21 33.33333333 50 150 11 1.909090909 82.6446281 3.077385424 121
11+12 11 12 22 33.33333333 47.82608696 143.4782609 11 1.833333333 83.33333333 2.585858586 144
12+1 12 1 12 33.33333333 92.30769231 276.9230769 12 12 0 341.3333333 1
12+2 12 2 13 33.33333333 85.71428571 257.1428571 12 6.5 45.83333333 2.666666667 128
12+3 12 3 14 33.33333333 80 240 12 4.666666667 61.11111111 1.404663923 243
12+4 12 4 15 33.33333333 75 225 12 3.75 68.75 1.333333333 256
12+5 12 5 16 33.33333333 70.58823529 211.7647059 12 3.2 73.33333333 0.546133333 625
12+6 12 6 17 33.33333333 66.66666667 200 12 2.833333333 76.38888889 1.580246914 216
12+7 12 7 18 33.33333333 63.15789474 189.4736842 12 2.571428571 78.57142857 0.995140914 343
12+8 12 8 19 33.33333333 60 180 12 2.375 80.20833333 0.666666667 512
12+9 12 9 20 33.33333333 57.14285714 171.4285714 12 2.222222222 81.48148148 0.468221308 729
12+10 12 10 21 33.33333333 54.54545455 163.6363636 12 2.1 82.5 0.341333333 1000
12+11 12 11 22 33.33333333 52.17391304 156.5217391 12 2 83.33333333 0.256448785 1331
12+12 12 12 23 33.33333333 50 150 12 1.916666667 84.02777778 2.37037037 144

責(zé)任編輯:xj

原文標(biāo)題:Ceph最新的EC-CLAY插件調(diào)研-上

文章出處:【微信公眾號(hào):Ceph對(duì)象存儲(chǔ)方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    969

    瀏覽量

    55784
  • 插件
    +關(guān)注

    關(guān)注

    0

    文章

    340

    瀏覽量

    23055
  • Ceph
    +關(guān)注

    關(guān)注

    1

    文章

    25

    瀏覽量

    9558

原文標(biāo)題:Ceph最新的EC-CLAY插件調(diào)研-上

文章出處:【微信號(hào):cephbook,微信公眾號(hào):Ceph對(duì)象存儲(chǔ)方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Ceph分布式存儲(chǔ)系統(tǒng)解析

    在當(dāng)今數(shù)據(jù)爆炸的時(shí)代,企業(yè)對(duì)存儲(chǔ)系統(tǒng)的需求日益增長,傳統(tǒng)的集中式存儲(chǔ)已經(jīng)無法滿足大規(guī)模數(shù)據(jù)處理的要求。分布式存儲(chǔ)系統(tǒng)應(yīng)運(yùn)而生,而Ceph作為開源分布式存儲(chǔ)系統(tǒng)的佼佼者,以其高可用性、高擴(kuò)展性和統(tǒng)一存儲(chǔ)架構(gòu)贏得了眾多企業(yè)的青睞。
    的頭像 發(fā)表于 07-14 11:15 ?177次閱讀

    用 VSCode 編寫自己的 KiCad 插件(下)

    “ ?很多小伙伴都想自己開發(fā) KiCad 插件,但不知從何入手。本文由華秋電子的另一位 KiCad 開發(fā)者波波同學(xué)撰寫,分享了如何快速搭建環(huán)境,并開發(fā)一個(gè)簡單的插件。? ” ? ? ? 所有環(huán)境配置
    的頭像 發(fā)表于 06-19 11:44 ?1321次閱讀
    用 VSCode 編寫自己的 KiCad <b class='flag-5'>插件</b>(下)

    [迅為]Linux開發(fā)小技巧:Remote - SSH插件

    [迅為]Linux開發(fā)小技巧:Remote - SSH插件
    的頭像 發(fā)表于 04-01 15:46 ?540次閱讀
    [迅為]Linux開發(fā)小技巧:Remote - SSH<b class='flag-5'>插件</b>

    PREEvision插件使用場景介紹

    PREEvision插件中心(Add-in House)是Vector中國PREEvision團(tuán)隊(duì)針對(duì)中國用戶開發(fā)的插件網(wǎng)站。用戶可以在這里找到各種場景的擴(kuò)展插件,包括以太網(wǎng)與SOA設(shè)計(jì)、軟件及通信設(shè)計(jì)、硬件設(shè)計(jì)、變更管理等領(lǐng)域
    的頭像 發(fā)表于 03-14 13:50 ?532次閱讀
    PREEvision<b class='flag-5'>插件</b>使用場景介紹

    DS28EC20 adi

    電子發(fā)燒友網(wǎng)為你提供ADI(ADI)DS28EC20相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有DS28EC20的引腳圖、接線圖、封裝手冊、中文資料、英文資料,DS28EC20真值表,DS28EC20
    發(fā)表于 03-10 18:32
    DS28<b class='flag-5'>EC</b>20 adi

    徹底移除Calico網(wǎng)絡(luò)插件

    0.前言 參考文檔:https://github.com/containernetworking/cni Pod網(wǎng)絡(luò)插件,為了實(shí)現(xiàn)Pod網(wǎng)絡(luò)而需要的插件、組件。由于Kubernetes通過開放
    的頭像 發(fā)表于 01-23 17:26 ?1082次閱讀
    徹底移除Calico網(wǎng)絡(luò)<b class='flag-5'>插件</b>

    EC芯片

    1、現(xiàn)在可以使用的EC芯片有哪些、有哪些功能 2、是否提供直接可用的EC的固件? 3、如果需要自己編程,是否提供例程? 4、編程過程中的問題是否提供技術(shù)支持?
    發(fā)表于 01-09 16:16

    環(huán)球儀器Omni插件機(jī)的優(yōu)勢

    由于傳統(tǒng)插件機(jī)引腳歪斜,導(dǎo)致拋料率高,減低插件成功率,提高了拋料率。環(huán)球儀器的Omni 插件機(jī),則采用兩項(xiàng)技術(shù),提高插件成功率,減低拋料率。
    的頭像 發(fā)表于 01-07 09:12 ?830次閱讀
    環(huán)球儀器Omni<b class='flag-5'>插件</b>機(jī)的優(yōu)勢

    Kubernetes的CNI網(wǎng)絡(luò)插件之flannel

    Kubernetes設(shè)計(jì)了網(wǎng)絡(luò)模型,但卻將它的實(shí)現(xiàn)講給了網(wǎng)絡(luò)插件,CNI網(wǎng)絡(luò)插件最重要的功能就是實(shí)現(xiàn)Pod資源能夠跨主機(jī)通信。
    的頭像 發(fā)表于 01-02 09:43 ?815次閱讀

    SOLIDWORKS插件功能介紹 慧德敏學(xué)

    SOLIDWORKS擁有一系列內(nèi)置及第三方插件,這些插件豐富了其功能并提高了設(shè)計(jì)效率。本文為您介紹SOLIDWORKS插件功能,
    的頭像 發(fā)表于 11-23 15:56 ?1954次閱讀

    寫一個(gè)Chrome瀏覽器插件

    一、什么是瀏覽器插件 瀏覽器插件是依附于瀏覽器,用來拓展網(wǎng)頁能力的程序。插件具有監(jiān)聽瀏覽器事件、獲取和修改網(wǎng)頁元素、攔截網(wǎng)絡(luò)請求、添加快捷菜單等功能。使用瀏覽器插件可以實(shí)現(xiàn)很多有趣的功
    的頭像 發(fā)表于 11-18 17:12 ?1055次閱讀
    寫一個(gè)Chrome瀏覽器<b class='flag-5'>插件</b>

    KiCad插件大全

    感謝Hayden同學(xué)的整理! 插件使用方式 1. 解壓縮插件包到KICAD插件目錄。例如,在Windows上可能是:C:Program
    的頭像 發(fā)表于 11-12 12:24 ?2469次閱讀

    VSCode批量遷移插件

    代碼的路 打開之前電腦,找到原電腦VS Code的插件安裝目錄: 如: C:\\\\Users\\\\用戶名\\\\.vscode\\\\extensions 將extensions文件夾拷貝到
    的頭像 發(fā)表于 11-06 16:04 ?792次閱讀
    VSCode批量遷移<b class='flag-5'>插件</b>

    VSCode插件的安裝和使用

    今天介紹一款我工作上經(jīng)常用到的一款VSCode的插件-VsCode Action Buttons,這個(gè)插件可以釋放手敲命令行清除、編譯、運(yùn)行、部署到目標(biāo)機(jī)等操作,具體功能可由開發(fā)者自由定義,詳細(xì)功能的使用可以參考官網(wǎng)。
    的頭像 發(fā)表于 11-04 15:36 ?887次閱讀
    VSCode<b class='flag-5'>插件</b>的安裝和使用

    EC傳感器有哪些作用

    在現(xiàn)代水質(zhì)監(jiān)測領(lǐng)域,準(zhǔn)確、高效的數(shù)據(jù)采集與傳輸成為保障水質(zhì)安全與提升管理效率的關(guān)鍵。EC(電導(dǎo)率)傳感器作為水質(zhì)監(jiān)測的重要工具,其性能與功能直接影響到監(jiān)測結(jié)果的準(zhǔn)確性和實(shí)用性。EC傳感器配備
    的頭像 發(fā)表于 09-18 17:18 ?941次閱讀