当前位置: 首页 > news >正文

网页设计网站模板素材花店网站建设课程设计论文

网页设计网站模板素材,花店网站建设课程设计论文,苏州自助建站,江夏网站建设cacheline是内存调度的基本结构#xff0c;其大小一般为32B或者64B。关于本机具体的配置信息可以在配置文件中看到#xff1a; 这里可以看到我的这台机器的cacheline大小是64B。对于cacheline在多核处理器中有一个伪共享的状态#xff0c;具体可以参考以下博客#xff1a;高…cacheline是内存调度的基本结构其大小一般为32B或者64B。关于本机具体的配置信息可以在配置文件中看到 这里可以看到我的这台机器的cacheline大小是64B。对于cacheline在多核处理器中有一个伪共享的状态具体可以参考以下博客高速缓存伪共享 - 知乎这个大佬写了1K多篇文章我感觉需要好好消化消化。 所谓“伪共享”实际上是主存中的一个cacheline中的内容在同一时刻只能被多核中的一个捕获处理。 程序如下 #include unistd.h #include stdio.h #include string #include vector #include string.h #include thread #include chrono #include iostream #include atomicstruct 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.b0;volatile bool brun true;thread t1([c,brun](){while(brun)c.a1;});thread t2([c,brun](){while(brun)c.b1;});std::this_thread::sleep_for(std::chrono::seconds(1));brunfalse;//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.b0;volatile bool brun true;thread t1([c,brun](){while(brun)c.a1;});thread t2([c,brun](){while(brun)c.b1;});std::this_thread::sleep_for(std::chrono::seconds(1));brunfalse;//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.b0;volatile bool brun true;thread t1([c,brun](){while(brun)c.a1;});std::this_thread::sleep_for(std::chrono::seconds(1));brunfalse;//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关键字这个关键字的作用在于将缓存和主存硬绑定有点同步打开文件描述符的意思。这样可以预期到内存会被以cacheline为单位上锁。然后进行编译。 这里用的是O2进行优化然后执行结果如下 这个地方可以发现在没有填充的情况下1秒内访问的速度是3.5*10^8而将struct c填充到128字节的访问次数是4.9*10^8。几乎同样的代码将最后的单CPU每秒能进行加法数量的统计去掉之后结果如下 可以看到两次的情况不填充的速度总是要远远逊色于填充的情况。我们在做服务器程序深度优化的时候要注意这个硬件细节有时候能够极大地加快程序的运行速度。可以注意到伪共享状态只是影响了CPU的运行时间服务器的大量CPU时间会在等待锁中消耗所以现在无锁代码非常流行。另外为什么增加或者修改代码的大小就会影响CPU的执行效率呢这个问题还是没有得到答案。
http://www.tj-hxxt.cn/news/131393.html

相关文章:

  • 福州仓山区网站建设东莞做网站企业
  • 网站开发前端兼职通讯数码网站
  • 苏州建网站公司选苏州聚尚网络邢台免费发布信息
  • 建设工程施工合同范本哪个网站免费的网站搭建平台
  • 广州做商城网站公司网站一般用什么软件做
  • 小城镇建设的网站文献苏州小程序开发
  • 江苏住房城乡建设部部官方网站服务器建站用哪个系统好
  • 学校网站建设报价单2018做分享网站
  • 网站开发语言版本不同广州版单一窗口
  • 网站怎么做黑链接东莞寮步华衍学校
  • 什么是网站的入口wordpress 主题使用
  • 找人做个网站需要多少钱求个网站好人有好报2023
  • 上海交通大学网站建设摄影网站建设任务书
  • 一级a做爰片免费网站黄有文化内涵又高雅的公司名字
  • 佛山市城市建设档案馆网站扁平化设计 科技感网站素材
  • 企业网站有哪些例子月嫂网站建设
  • jsp 做网站需要什么黑龙江最新消息今天
  • 什么网站可以看女人唔易做六安网络科技股份有限公司
  • 网站建设介绍pptwordpress 导出导入文章
  • 青岛专业网站建设推广报价网站版面设计方案
  • 怎么修改公司网站图片张家港网站制作服务
  • 龙岗外贸网站制作图片生成链接网站
  • 美容 北京 公司 网站建设昆明网站建设天猫运营
  • ps制作网站logo怎么增加网站流量
  • 东八区网站建设中信建设有限责任公司内江分公司
  • 为什么有些网站更新的信息看不到有赞商城网站建设
  • 怎么用word做一个网站综合性门户网站列举
  • 福州网站设计外包书城网站开发
  • 宝安电子厂做高端网站一键优化为什么不能100
  • 食品网站建设规划书比较好的响应式网站