国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

全國建筑業(yè)四庫一平臺seo賺錢暴利

全國建筑業(yè)四庫一平臺,seo賺錢暴利,樹莓派做網(wǎng)站,網(wǎng)站建設(shè)的開發(fā)方式cacheline是內(nèi)存調(diào)度的基本結(jié)構(gòu),其大小一般為32B或者64B。關(guān)于本機具體的配置信息可以在配置文件中看到: 這里可以看到我的這臺機器的cacheline大小是64B。對于cacheline在多核處理器中有一個偽共享的狀態(tài),具體可以參考以下博客:高…

cacheline是內(nèi)存調(diào)度的基本結(jié)構(gòu),其大小一般為32B或者64B。關(guān)于本機具體的配置信息可以在配置文件中看到:

這里可以看到我的這臺機器的cacheline大小是64B。對于cacheline在多核處理器中有一個偽共享的狀態(tài),具體可以參考以下博客:高速緩存?zhèn)喂蚕?- 知乎(這個大佬寫了1K多篇文章,我感覺需要好好消化消化。)

所謂“偽共享”實際上是主存中的一個cacheline中的內(nèi)容,在同一時刻只能被多核中的一個捕獲處理。

程序如下:

#include <unistd.h>
#include <stdio.h>
#include <string>
#include <vector>
#include <string.h>
#include <thread>
#include <chrono>
#include <iostream>
#include <atomic>struct common
{volatile unsigned long a;volatile unsigned long b;
};
struct common_fulfill
{volatile unsigned long a;unsigned long az[7];volatile unsigned long b;unsigned long bz[7];
};using namespace std;
int main(int argc, char** argv)
{cout << "no-fulfill" << endl;do{common c;c.a = 0;c.b=0;volatile bool brun = true;thread t1([&c,&brun](){while(brun)c.a+=1;});thread t2([&c,&brun](){while(brun)c.b+=1;});std::this_thread::sleep_for(std::chrono::seconds(1));brun=false;//std::atomic_thread_fence(std::memory_order_seq_cst);t1.join();t2.join();cout << "a:" << c.a << "\t b:" << c.b << endl;}while(0);cout << "fulfill" << endl;do{common_fulfill c;c.a = 0;c.b=0;volatile bool brun = true;thread t1([&c,&brun](){while(brun)c.a+=1;});thread t2([&c,&brun](){while(brun)c.b+=1;});std::this_thread::sleep_for(std::chrono::seconds(1));brun=false;//std::atomic_thread_fence(std::memory_order_seq_cst);t1.join();t2.join();cout << "a:" << c.a << "\t b:" << c.b << endl;}while(0);cout << "add-per-second" << endl;do{common_fulfill c;c.a = 0;c.b=0;volatile bool brun = true;thread t1([&c,&brun](){while(brun)c.a+=1;});std::this_thread::sleep_for(std::chrono::seconds(1));brun=false;//std::atomic_thread_fence(std::memory_order_seq_cst);t1.join();cout << "a:" << c.a << endl;}while(0);return 0;
}

注意,我在struct c中的a和b都增加了volatile關(guān)鍵字,這個關(guān)鍵字的作用在于將緩存和主存硬綁定,有點同步打開文件描述符的意思。這樣,可以預期到內(nèi)存會被以cacheline為單位上鎖。然后進行編譯。

這里用的是O2進行優(yōu)化,然后執(zhí)行,結(jié)果如下:

這個地方可以發(fā)現(xiàn),在沒有填充的情況下,1秒內(nèi)訪問的速度是3.5*10^8;而將struct c填充到128字節(jié)的訪問次數(shù)是4.9*10^8。幾乎同樣的代碼,將最后的單CPU每秒能進行加法數(shù)量的統(tǒng)計去掉之后,結(jié)果如下:

可以看到,兩次的情況,不填充的速度總是要遠遠遜色于填充的情況。我們在做服務(wù)器程序深度優(yōu)化的時候,要注意這個硬件細節(jié),有時候能夠極大地加快程序的運行速度??梢宰⒁獾?#xff0c;偽共享狀態(tài)只是影響了CPU的運行時間,服務(wù)器的大量CPU時間會在等待鎖中消耗,所以現(xiàn)在無鎖代碼非常流行。另外為什么增加或者修改代碼的大小就會影響CPU的執(zhí)行效率呢?這個問題還是沒有得到答案。

http://aloenet.com.cn/news/28162.html

相關(guān)文章:

  • 河南鄭州網(wǎng)站推廣優(yōu)化淘寶優(yōu)化關(guān)鍵詞的步驟
  • 找人開發(fā)一個app多少錢網(wǎng)站建設(shè)排名優(yōu)化
  • 做公司網(wǎng)站需要多外包網(wǎng)絡(luò)推廣公司推廣網(wǎng)站
  • 網(wǎng)站后期運營方案步驟十大電商代運營公司
  • 是在百度中建設(shè)網(wǎng)站?百度的網(wǎng)頁地址
  • 如何搭建一個論壇網(wǎng)站黑帽seo技術(shù)培訓
  • 網(wǎng)站充值提現(xiàn)公司賬務(wù)怎么做網(wǎng)站建設(shè) 全網(wǎng)營銷
  • 秦皇島城鄉(xiāng)建設(shè)局電話桂平seo關(guān)鍵詞優(yōu)化
  • 護欄板銷售網(wǎng)站怎么做百度競價可以自學嗎
  • 網(wǎng)站建設(shè)的完整流程成人再就業(yè)培訓班
  • 網(wǎng)站建設(shè)步驟實踐報告廣州市新聞最新消息
  • 深圳做app網(wǎng)站建設(shè)seo研究中心vip課程
  • vue.js 可以做網(wǎng)站嗎百度拉新推廣平臺
  • 彩票走勢圖網(wǎng)站是用什么程序做的搜索引擎優(yōu)化的目標
  • 海外 網(wǎng)站 推廣百度一下百度知道
  • 網(wǎng)站是否被百度收錄網(wǎng)址信息查詢
  • 怎嗎做網(wǎng)站掙錢揭陽seo快速排名
  • 如何用騰訊云做網(wǎng)站seo百度關(guān)鍵詞優(yōu)化
  • 聊城做網(wǎng)站好的公司淘寶網(wǎng)店代運營正規(guī)公司
  • 做網(wǎng)站美工廣州seo推廣公司
  • 山西傳染病最新消息今天唐山seo排名外包
  • 如何建設(shè)網(wǎng)站方便后期維護東莞網(wǎng)絡(luò)推廣公司
  • 做培訓的網(wǎng)站建設(shè)網(wǎng)絡(luò)推廣工作內(nèi)容怎么寫
  • 游戲軟件開發(fā)屬于什么專業(yè)seo內(nèi)部優(yōu)化具體做什么
  • 宣城市網(wǎng)站集約化建設(shè)茶葉網(wǎng)絡(luò)推廣方案
  • 長沙做企業(yè)網(wǎng)站的公司中國網(wǎng)站排名
  • 網(wǎng)站制作難點故事式的軟文廣告例子
  • 青島網(wǎng)站建設(shè)青島新思維百度用戶服務(wù)中心人工電話
  • 浙江省建設(shè)通網(wǎng)站迅雷磁力
  • 網(wǎng)站建設(shè)找星火龍關(guān)鍵詞排名代做