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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

【Linux 内核 内存管理】优化内存屏障 ① ( barrier 优化屏障 | 编译器优化 | CPU 执行优化 | 优化屏障源码 barrier 宏 )

發布時間:2025/6/17 linux 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Linux 内核 内存管理】优化内存屏障 ① ( barrier 优化屏障 | 编译器优化 | CPU 执行优化 | 优化屏障源码 barrier 宏 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、優化屏障 ( 編譯器優化 | CPU 執行優化 )
  • 二、優化屏障源碼





一、優化屏障 ( 編譯器優化 | CPU 執行優化 )




" 代碼 “ 編譯成 ” 可執行文件 “ , 執行該 可執行文件 時 , 二進制指令 的 ” 執行順序 " , 與 源碼 的指令順序 并不是完全一致的 , 為了提高 " 可執行文件 " 的執行性能 , 會對程序中的 " 指令 " 進行優化 ;


" 指令 " 優化主要分 222 種 :

  • ① 編譯器優化 : 為了 提高程序執行性能 , 編譯器會在 不影響 程序邏輯的前提下 , 對程序指令進行優化 , 主要操作是 調整程序指令的執行順序 ;
  • ② CPU 執行優化 : 該優化是為了 提高 " 流水線 " 性能 , 但是 CPU 執行優化會導致 指令亂序執行 , 后面的指令先于前面的指令執行 , 導致 寄存器中的值沖突 ;

" 優化屏障 " 的作用是 避免優化操作 對指令順序 進行重排 , 保障 代碼編譯時 , 在 " 優化屏障 之前 “ 的指令 , 不會在 ” 優化屏障 之后 " 執行 ;





二、優化屏障源碼



在 Linux 中 , " 優化屏障 " 是通過 barrier() 宏定義 實現的 ,

gcc 編譯器 的 " 優化屏障 " 定義在 linux-5.6.18\include\linux\compiler-gcc.h 源碼中 ;

/* Optimization barrier *//* The "volatile" is due to gcc bugs */ #define barrier() __asm__ __volatile__("": : :"memory")


源碼路徑 : linux-5.6.18\include\linux\compiler-gcc.h#20


不同的編譯器 的 " 優化屏障 " barrier() 宏定義 位置不同 , 如

clang 編譯器 的 優化屏障 定義在 linux-5.6.18\include\linux\compiler-clang.h 源碼中 ,


源碼路徑 : linux-5.6.18\include\linux\compiler-clang.h#44

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的【Linux 内核 内存管理】优化内存屏障 ① ( barrier 优化屏障 | 编译器优化 | CPU 执行优化 | 优化屏障源码 barrier 宏 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。