亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

您現在的位置是:首頁 > 技術閱讀 >  C++性能白皮書

C++性能白皮書

時間:2024-02-15

最近看完了《C++性能白皮書》,這本書列出了一些性能優化的思路,不過只是一些指引,沒有講具體細節,我整理出了其中的關鍵點分享給大家:


硬件篇

作為一個程序員,想要性能優化,最好要了解些硬件,特別是CPU架構的一些知識點:

  • 流水線

  • 分支預測

  • 寄存器重命名

  • 數據預取

  • 指令重排和亂序執行

  • 同時多線程(超線程)

  • 數據并行 SIMD 單指令多數據


還要了解CPU的特點:

  • 一個處理器上,多條指令可能同時執行

  • 一個處理器上,代碼的執行結果會和程序員可觀察到的順序一致,但其他處理器觀察到的執行結果可能不是一個順序

  • 順序、無跳轉的代碼性能最高

  • 相鄰且對齊的數據訪問性能最高


內存方向的優化:

  1. 金字塔圖需要了解


還需要了解CPU多級緩存和關鍵跨度的概念,這塊可以看這篇文章:https://mp.weixin.qq.com/s/iKWQZxn6XYKU9KnlBRynfg

要了解基本工具:

  • 編譯器:MSVC GCC clang

  • 不同級別的優化:O1 O2 O3 以及他們的主要區別


需要知道性能分析指導下的優化:PGO profile-guided optimization


也就是利用程序運行的profiling數據,指導編譯器進一步優化。多測試,找到程序熱點,根據數據針對性優化。


還有鏈接期優化:link-time optimization LTO


LTO可以:

  • 跨翻譯單元的函數內聯

  • 跨翻譯單元的程序整體優化

  • 死代碼消除


做性能優化,需要了解性能測試的阿姆達爾定律,80-20原則,20%的代碼決定了80%的結果,如果對20%以外的代碼進行優化,性價比太低,性能測試的意義就在于此:

  • 找出代碼中性能開銷最大的部分

  • 測量代碼優化之后的實際收益


需要熟練使用性能采樣工具:

  • Windows中Visual Studio有自帶的性能分析工具

  • Linux有Perf或者gperftools


C++篇

關于C++語言層面的優化,可以在下面這些方向做優化:

  1. 優先棧內存,次之堆內存

  2. 巧妙使用RAII管理資源

  3. 移動語義雖然不好理解,但也可以巧妙使用移動語義減少對象的非必要拷貝

  4. 模板和泛型技巧華而不實,給開發標準庫的人使用還好,而且調試難度也較高,我們普通業務開發者只需要做到能看懂即可(個人見解)

  5. 異常是可以考慮使用的,可以看看ISO C++網站和C++ 核心指南62,異常會導致程序的二進制體積有膨脹(5%-15%),異常不能代替所有的錯誤碼,因為異常catch會使得程序性能下降。作者認為:使用異常對于大部分C++項目仍然適用,不使用異常的麻煩大于好處,除非真因為二進制文件和實時性方面的原因需要禁用異常。

  6. 字符串默認類型時 const char[],傳參時會退化成const char*,創建全局字符串最好使用const char[]

  7. 標準庫容器的方法至少提供了基本異常安全保證:要了解強異常安全保證和無異常保證。

  8. vector的移動構造函數標記為noexcept才會使用移動構造,移動構造函數需要標記為noexcept,如果沒有標記,代碼性能可能會有較大的負面影響。

  9. shared_ptr構造優先使用make_shared

10.了解function,function用作回調很方便,支持類型擦除,它還有個好處,可以用來存儲帶狀態的函數對象,不像C語言那樣需要個void*存儲狀態。但需要了解它的開銷,貌似48個字節是個坎。

11.堆內存管理:可以了解下jemalloc mimalloc tcmalloc
12.輸入輸出流可以考慮使用ios_base::sync_with_stdio(false)關閉同步,性能會提升,也最好使用\n取代endl,免得頻繁刷新緩沖區。可考慮使用fmt

13.并發

  • 需要了解內存序的概念
  • 一些優質的多生產者多消費者并發隊列
  • moodycamed::ConcurrentQueue
  • atomic_queue
  • Folly中MPMCQueue
  • 標準庫也有些并行策略:
  • execution::seq 序列執行,不可并行
  • par:可并行化

  • par_unseq:可并行化 向量化

  • unseq:可向量化


通用方法篇

通用優化方法

  • 優化原則:不要執行不必要的代碼

  • 循環優化,盡量減少臨時對象的創建

  • 結構體設計時最好做到對齊

  • 盡量順序訪問數據,矩陣乘法可以很好的印證CPU Cache的作用,再考慮添加-O3 -march=native開啟SIMD自動向量化

  • 緩存爭用問題

  • 多看看別人的代碼,別人的優化,多用優秀的開源代碼


這里有 一個優質的C++學習圈 等你加入,來一起鉆研C++吧。

亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美激情四射在线日| 国产主播一区| 国产日韩精品在线播放| 亚洲欧洲av一区二区| 欧美午夜在线一二页| 亚洲一卡久久| 国产一区二区三区直播精品电影 | 亚洲一区二区三区国产| 国产精品国产三级国产aⅴ9色| 亚洲综合国产| 亚洲电影免费在线观看| 欧美色欧美亚洲高清在线视频| 午夜免费日韩视频| 一区二区三区在线视频播放| 你懂的国产精品永久在线| 亚洲天堂第二页| 国产视频一区在线观看| 久久一本综合频道| 日韩一区二区久久| 国产亚洲毛片在线| 久久久久久免费| 日韩视频免费在线观看| 国产欧美一区二区精品忘忧草| 葵司免费一区二区三区四区五区| 亚洲国产欧美一区二区三区同亚洲 | 国产精品视区| 久久久久久精| 亚洲欧美国产不卡| 最新国产精品拍自在线播放| 国产欧美视频一区二区三区| 欧美另类极品videosbest最新版本| 性亚洲最疯狂xxxx高清| 亚洲精品久久嫩草网站秘色| 国一区二区在线观看| 国产精品久久久久9999高清 | 麻豆精品视频在线| 亚洲欧美美女| 99re6这里只有精品| 黄色成人小视频| 国产精品一区在线观看你懂的| 欧美激情在线观看| 老鸭窝亚洲一区二区三区| 午夜久久久久久| 亚洲性视频网站| a4yy欧美一区二区三区| 亚洲精品久久久久久久久久久久久| 精品成人a区在线观看| 国外成人在线视频网站| 国产亚洲一区二区精品| 国产午夜精品全部视频播放| 国产伦理精品不卡| 国产精品入口| 国产精品伦子伦免费视频| 国产精品www| 国产精品视频导航| 国产精品一二三视频| 国产精品亚洲成人| 国产日产亚洲精品| 国产一区日韩一区| 国内自拍一区| 在线精品国产成人综合| 亚洲国产精品精华液2区45| 亚洲高清视频一区| 在线精品视频一区二区| 一区二区三区我不卡| 亚洲夫妻自拍| 日韩亚洲在线观看| 在线视频欧美一区| 午夜精品999| 久久九九国产精品| 女仆av观看一区| 欧美日韩hd| 国产精品久久久久久久久久久久| 国产精品亚洲综合天堂夜夜| 国产综合第一页| 亚洲国产精品久久久久秋霞影院| 亚洲黄色尤物视频| 亚洲性线免费观看视频成熟| 性做久久久久久久免费看| 久久午夜精品一区二区| 欧美激情国产日韩| 国产精品成人久久久久| 国产亚洲欧美一区| 91久久国产自产拍夜夜嗨| 中文精品视频| 久久久久久久999| 欧美日韩国产欧| 国产三级精品在线不卡| 亚洲日本乱码在线观看| 午夜精品福利在线| 米奇777在线欧美播放| 欧美性大战xxxxx久久久| 国内精品久久久久久久果冻传媒 | 国产一区二区三区久久悠悠色av| 亚洲第一在线综合网站| 亚洲一区二区三区乱码aⅴ| 久久午夜激情| 国产精品一区二区三区观看| 亚洲精品视频免费| 久久精品水蜜桃av综合天堂| 欧美日韩中字| 亚洲国产一成人久久精品| 欧美一区网站| 国产精品大片| 亚洲美女av网站| 久久综合久久综合久久综合| 国产精品色婷婷久久58| 99视频精品全部免费在线| 久久久久国色av免费观看性色| 欧美日韩在线视频观看| 亚洲国产片色| 久久久久久穴| 国产午夜精品一区理论片飘花| 日韩亚洲欧美一区| 免费看av成人| 在线观看视频日韩| 久久精品中文字幕一区| 国产精品你懂得| 这里只有精品视频在线| 欧美理论在线| 亚洲日本va午夜在线影院| 久久综合五月天婷婷伊人| 国产欧美一级| 亚洲字幕一区二区| 国产精品二区在线观看| 亚洲视频精品| 久久视频这里只有精品| 国内偷自视频区视频综合| 999亚洲国产精| 久久在线91| 国产视频一区在线观看一区免费| 亚洲一区欧美一区| 欧美日韩免费观看一区| 亚洲国产影院| 欧美激情亚洲综合一区| 亚洲精品日韩欧美| 欧美精品久久一区二区| 日韩视频专区| 欧美日韩在线播放一区二区| 99国产精品久久久| 欧美精品一区二区视频| 一区二区三区波多野结衣在线观看| 欧美日韩国产页| 亚洲天堂av在线免费观看| 国产精品久久| 欧美一级在线亚洲天堂| 精品成人在线观看| 免费日韩精品中文字幕视频在线| 亚洲欧洲在线一区| 欧美精品在线免费| 亚洲一区二区三区精品在线观看 | 在线亚洲精品| 欧美四级在线观看| 亚洲综合电影| 黄色免费成人| 欧美日韩日本网| 香蕉av777xxx色综合一区| 狠狠色噜噜狠狠色综合久| 欧美成人资源| 午夜精品福利一区二区三区av| 狠久久av成人天堂| 欧美精品导航| 欧美影院久久久| 亚洲人成网在线播放| 国产精品国产三级欧美二区| 久久久久九九九九| 亚洲伦理在线观看| 国产视频亚洲| 欧美另类专区| 久久精品国产一区二区三区| 亚洲美女毛片| 精品福利免费观看| 国产精品福利在线观看网址| 久久久久久欧美| 亚洲小说区图片区| 亚洲国产综合视频在线观看 | 欧美精品一区三区| 亚洲新中文字幕| 亚洲国产成人av在线| 国产精品青草久久久久福利99| 久久久久综合网| 亚洲香蕉视频| 亚洲日本在线视频观看| 国产亚洲欧美另类一区二区三区| 欧美日韩视频在线观看一区二区三区| 欧美一区午夜精品| 一区二区三区国产精品| 激情综合网激情| 国产免费成人av| 欧美日韩精品欧美日韩精品| 久久视频国产精品免费视频在线| 亚洲在线视频观看| 亚洲免费电影在线观看| 在线观看av一区| 亚洲国产日韩一区二区| 国产精品久久久久aaaa| 亚洲美女视频网| 狠狠色综合播放一区二区| 欧美黄色精品| 久久午夜色播影院免费高清|