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

linux缓存-利用缓存提高性能的编程技巧

目录

利用缓存提高性能的编程技巧

实现方式


利用缓存提高性能的编程技巧

利用GCC编译器对齐属性  __attribute__((__aligned__(n))),利用处理器的缓存提高程序的执行速度;

  • 使变量的起始地址对齐到一级缓存行长度的整数倍;
  • 使结构体对齐到一级缓存行长度的整数倍
  • 使结构体中一个字段对齐到一级缓存行长度整数倍;
     

实现方式


1、以 4 个下划线开头的宏 cacheline_aligned : 对齐到 一级缓存行的长度 。

#ifndef —cacheline_aligned
#define —cacheline aligned _attribute (( _aligned_ (SMP CACHE_BYTES)))
#endif 

 2、以四个下划线开头的宏____cacheline_aligned_in_smp:在对称处理器系统中等价于宏____cacheline_aligned,在单处理器中是空的宏。

#ifndef cacheline aligned_in smp
#ifdef CONFIG_SMP
#define _ cacheline_aligned in smp _cacheline aligned
#else
#define cacheline_aligned in smp
#endif /* CONFIG SMP */
#endif

3、
以两个下划线开头的宏_cacheline_aligned: 对齐到一级缓存行的长度,并且把变
量放在 ".data..cacheline_aligned" 节中。 

#ifndef _ cacheline_aligned
#define _ cachel ine_al igned \
__attribute ((_ aligned (SMP CACHE BYTES) , \
__section_ (".data .. cacheline_aligned" )))
#endif /* _ cacheline_aligned */

4、以两个下划线开头的宏__cacheline_aligned_in_smp: 在对称多处理器系统中等价于宏__cacheline_aligned, 在单处理器系统中是空的宏。 

#ifndef _ cacheline_aligned_in smp
#ifdef CONFIG_SMP
#define _ cacheline_aligned in srnp
#else
#define _ cacheline_aligned in srnp
#endif /* CONFIG_SMP */
#endif

http://www.lryc.cn/news/177733.html

相关文章:

  • Socks5代理、IP代理与其在爬虫开发中的应用
  • 【C++】C++继承——切片、隐藏、默认成员函数、菱形
  • WebGL笔记:WebGL中绘制圆点,设定透明度,渲染动画
  • 华为云云耀云服务器L实例评测 | 实例使用教学之简单使用:通过命令行管理华为云云耀云服务器
  • 微信小程序 课程签到系统
  • 如何用Postman做接口自动化测试
  • 支付宝电脑网站支付,异步通知
  • 【广州华锐互动】奶牛养殖难产助产3D沉浸式教学平台
  • IDEA社区版,真香!
  • SpringBoot实现全局异常处理
  • Day05-循环高级和数组
  • 从代码操作层面解释什么是“面相对象编程”?
  • 【MySQL】SQL优化、char、varchar、外键约束、排查慢sql等重点知识汇总
  • git管理常用命令
  • Python 逢七拍手小游戏2.0
  • 基于微信小程序的在线小说阅读系统,附数据库、教程
  • 216. 组合总和 III
  • 【Java】数组的深浅拷贝问题(二维数组举例)(136)
  • 【轮趣-科大讯飞】M260C 环形六麦测试 2 - ROS1功能测试与唤醒、语音识别程序解析
  • 油猴(篡改猴)学习记录
  • LeetCode 面试题 05.08. 绘制直线
  • 机器人中的数值优化|【六】线性共轭梯度法,牛顿共轭梯度法
  • FastestDet---原理介绍
  • ORACLE 在内存管理机制上的演变和进化
  • Linux ❀ 进程出现process information unavailable时的消除方法
  • ps智能填充功能平替:alpaca的安装和使用
  • 【前端打怪升级日志之ES6篇】玩转函数
  • 网址静态码手机制作教程,附图文详解!
  • 服务器性能测试监控平台export+prometheus(普罗米修斯)+grafana搭建
  • 【24种设计模式】责任链模式