无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

直播軟件APP開發(fā),了解過緩存一致性協(xié)議嗎

2022-12-12 15:51 作者:yunbaoKJ  | 我要投稿

緩存一致性協(xié)議也被稱為MESI,現(xiàn)在直播軟件APP開發(fā)一般是多CPU和多核的,很容易出現(xiàn)多個CPU同一時間訪問一個變量的情況,而MESI就是為了解決這個變量問題的,保證直播軟件APP開發(fā)數(shù)據(jù)一致性的問題。

?


一、MESI的四種狀態(tài)

1、M,已修改,代表緩存行里面的數(shù)據(jù)已經(jīng)被修改了,后續(xù)會寫到內(nèi)存中

2、E,獨占,代表該數(shù)據(jù)只能被直播軟件APP開發(fā)的CPU或者該核緩存,不存在多個CPU或者多個核同時操作的情況

3、S,共享,代表該數(shù)據(jù)可以被多個CPU或者多核緩存,存在多個CPU或者多個核同時操作的情況

4、I,已失效,代表該緩存行里面的數(shù)據(jù)已經(jīng)失效了,也就是被其他CPU或者核已經(jīng)修改掉了

?


二、針對MESI的優(yōu)化

緩存一致性信息傳遞是需要時間的,就導(dǎo)致其切換時會產(chǎn)生延遲,當(dāng)一個緩存被切換狀態(tài)時其他緩存受到消息完成各自的切換并且發(fā)出回應(yīng)消息,那直播軟件APP開發(fā)需要等待所有緩存響應(yīng)完成,可能會出現(xiàn)阻塞,導(dǎo)致各種各樣的性能問題和穩(wěn)定性問題。

解決方法在于:在直播軟件APP開發(fā)某個CPU修改變量后,會去通知其他用到了該變量的CPU,其他用到了該變量的CPU收到通知后,會將自己的備份數(shù)據(jù)放到一個失效隊列中,然后立刻發(fā)送修改的CPU一個通知,等確定其他CPU都收到后,發(fā)送的那個就會將數(shù)據(jù)丟掉。

?


三、緩存行的偽共享

1、偽共享是什么。首先CPU緩存系統(tǒng)中是以緩存行為單位儲存的,目前直播軟件APP開發(fā)主流的CPU大小是固定的,在多線程情況下,如果需要修改共享同一個緩存行的變量,就會影響到彼此之間的性能

2、如何解決偽共享。給直播軟件APP開發(fā)加上一個注解的類會自動補齊緩存行,需要注意的是此注解默認是無效的,需要在jvm啟動時才會生效

聲明:以上內(nèi)容為云豹科技作者本人原創(chuàng),未經(jīng)作者本人同意,禁止轉(zhuǎn)載,否則將追究相關(guān)法律責(zé)任


直播軟件APP開發(fā),了解過緩存一致性協(xié)議嗎的評論 (共 條)

分享到微博請遵守國家法律
高邮市| 武山县| 罗定市| 潜江市| 晋城| 延津县| 霸州市| 安陆市| 呼和浩特市| 同德县| 苍山县| 中宁县| 平江县| 安远县| 茶陵县| 青田县| 闻喜县| 磴口县| 友谊县| 孝义市| 昌平区| 宽城| 漾濞| 乌苏市| 威信县| 达孜县| 东源县| 大姚县| 昭觉县| 湘阴县| 明星| 天等县| 宁津县| 芦山县| 南昌市| 陇南市| 嘉鱼县| 四会市| 林口县| 重庆市| 武威市|