日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

当优化扩展到多核时

發(fā)布時間:2025/3/17 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 当优化扩展到多核时 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

當優(yōu)化擴展到多核時

"軟件開發(fā)沒有銀彈,我們能做的就是選擇和平衡;"

上一篇文章我們聊了在單線程下程序優(yōu)化的5個方向(ref:《程序優(yōu)化的5個方向》);當單核優(yōu)化到極值后,就到了多任務(wù)的情況;
想起來很清晰,單個任務(wù)分解成多個任務(wù),讓多個cpu同時來工作,并行執(zhí)行,效率自然就上去了;
但,未必就這么簡單;

任務(wù)分解的粒度

首先,我們需要確定,我們的單個任務(wù)是否可以分解;比如解析很多個文件,這樣的任務(wù)劃分成多個很簡單;但如果是一個耗時的串行邏輯計算,后期的計算依賴前期的結(jié)果,這樣就不好拆分;這種形式可能需要在更高層次上來拆分;

數(shù)據(jù)競爭

編程就是計算和數(shù)據(jù);計算并行了,但數(shù)據(jù)還是訪問同一份,訪問共同的資源會產(chǎn)生資源競爭;
如果不進行控制,可能導(dǎo)致同一份數(shù)據(jù)重復(fù)計算(多個讀的場景)或是臟數(shù)據(jù)的產(chǎn)生(有回寫的場景);

引入鎖

為了讓數(shù)據(jù)訪問有序進行,需要引入鎖來防止臟數(shù)據(jù);
控制鎖的粒度,是個需要精心考慮的話題;
比如對于大量讀少量寫的場景,相比一視同仁的加鎖,使用讀寫鎖能顯著提升效率;
我們?nèi)粘D芙佑|到的產(chǎn)品中,數(shù)據(jù)庫是個用鎖高手,在更新數(shù)據(jù)的時候,是鎖住行,還是列、或是表,不同的粒度性能相差明顯;

驚群現(xiàn)象

考慮這樣的場景:多個線程都在等在一個鎖,如果可以拿到鎖,線程就開始工作(線程池)
當鎖被釋放時,如果喚醒多個線程可能會產(chǎn)生 驚群現(xiàn)象;
解決方案:
使用單線程方案/處理accpet連接 處理等待鎖的操作,讓任何時刻只有一個線程在等待鎖;
更多細節(jié)參考:
《客戶-服務(wù)器程序設(shè)計方法》中 預(yù)先創(chuàng)建線程池,每個線程各自accept 一節(jié)

數(shù)據(jù)復(fù)制

讓每個線程使用自己的數(shù)據(jù),讓數(shù)據(jù)不共有,這樣能去掉資源競爭,去掉鎖;
將數(shù)據(jù)復(fù)制為多份,減少競爭,各自訪問各自的數(shù)據(jù);
但這又引入了一個新的問題:如果各個線程回寫了數(shù)據(jù),如何保證這么數(shù)據(jù)的一致性?
畢竟它們代表的其實是一份數(shù)據(jù);

涉及到數(shù)據(jù)的一致性,多份數(shù)據(jù)之間的同步又是個難題;

數(shù)據(jù)分片

那好,換個思路,不使用數(shù)據(jù)復(fù)制;我們使用數(shù)據(jù)分片;分片這個思想更容易想到,既然“計算”被劃分為多個小任務(wù)了,那么數(shù)據(jù)也可以同樣處理;
將數(shù)據(jù)分片,每份數(shù)據(jù)存的內(nèi)容不相同,它們之間沒有共同點;
這樣,數(shù)據(jù)訪問沒有數(shù)據(jù)競爭,同時由于數(shù)據(jù)不同,也不涉及到數(shù)據(jù)一致性同步的問題;
但,分片遠遠沒有想的那么美好;
分片導(dǎo)致了每個線程看到數(shù)據(jù)不再是全集,而是片段;這就注定了這個線程只能處理這部分的特定數(shù)據(jù);這樣,線程之間的計算失去了可替換性;某種工作只能在特定的線程上處理;
而如果有個任務(wù)需要訪問所有的數(shù)據(jù),這樣就變得更加復(fù)雜;
原來,分片之后,我們將難題向上推了,推到線程層面,需要考慮到業(yè)務(wù)邏輯層面的處理;
這樣,可能更加復(fù)雜;

ok,想要速度更快,使用多核來處理,需要面對更多的問題;
將單機擴展多機集群,涉及到架構(gòu)層面來看,其實我們的面對的問題是類似的;
參考:《大型網(wǎng)站技術(shù)架構(gòu)》讀書筆記[2] - 架構(gòu)的模式

軟件開發(fā)沒有銀彈,我們能做的就是選擇和平衡;

Posted by: 大CC | 13AUG,2015
博客:blog.me115.com [訂閱]
Github:大CC

總結(jié)

以上是生活随笔為你收集整理的当优化扩展到多核时的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜偷拍视频 | 992av| 久久精品国产亚洲AV成人婷婷 | 男男h黄动漫啪啪无遮挡软件 | 色一情一乱一伦一区二区三区 | 大学生高潮无套内谢视频 | 91av免费在线观看 | 欧美偷拍第一页 | 一区国产在线 | 88av在线播放| 精品人妻少妇嫩草av无码专区 | 色网站在线 | 黄色av一区| 制服丝袜快播 | 欧美福利视频在线观看 | 久久久精品久久久久 | 二区视频在线观看 | 一级全黄少妇性色生活片 | 国产免费一区视频观看免费 | 性欧美高清| 欧美激情视频一区二区 | 国产精品无码电影 | 久久免费公开视频 | 老司机av网站 | 看一级黄色片 | 亚色图| 又黄又色 | 国产免费成人 | 男女做爰猛烈吃奶啪啪喷水网站 | 国产精品无码一区二区三区三 | 91sex国产 | 色吧av| 福利姬在线播放 | 亚洲精品乱码久久久久久黑人 | 六月婷婷激情网 | 欧美成人午夜影院 | 日本xxxxxxxxx18| 黑人中文字幕一区二区三区 | 国产视频第二页 | 亚洲欧美激情图片 | 长篇高h肉爽文丝袜 | 日美女逼逼 | 天天操,夜夜操 | 人人妻人人澡人人爽欧美一区双 | 黄色在线播放视频 | 亚洲欧洲精品一区二区 | 国产一区二区免费在线 | 丰满人妻一区二区三区免费视频 | 精品久久国产视频 | 狠狠操夜夜爽 | 国产精品久久久久久久久久久不卡 | 国产亚洲第一页 | 日韩精品免费视频 | 亚洲欧美日韩一区在线观看 | 美女视频在线免费观看 | 911亚洲精品| 美女又爽又黄又免费 | 大色综合 | 日本人视频69式jzzij | 一区二区日韩在线观看 | 99热6这里只有精品 三级av在线免费观看 | 日产电影一区二区三区 | 正在播放经典国语对白 | 日本特黄特色aaa大片免费 | 午夜丁香婷婷 | 爱情岛论语亚洲入口 | 国产精品乱| 色噜噜色狠狠 | 午夜视频国产 | 色小说在线观看 | 国产xxx在线| 物业福利视频 | 日韩永久| 精品无码av在线 | 天堂av免费 | 欧美黑人精品 | 免费在线性爱视频 | 日本免费无人高清 | 亚洲在线观看视频 | 久久人人视频 | 亚色成人 | 99色网| 伊人免费视频 | 国产无遮挡又黄又爽免费网站 | 成人一区二区在线 | 97综合视频| 亚洲黄色在线播放 | 香蕉视频网站在线观看 | 黄色欧美在线观看 | 黄色三级视频在线观看 | 欧美人与性动交α欧美精品 | 欧美性受xxxx | av免费在线观看网站 | 亚洲黄色在线看 | 国产一区二区三区视频 | 91网站免费在线观看 | 操校花视频 | 日韩一区二区三 | 成人精品免费网站 |