日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

C++手动开启O2优化(以及-O -O1 -O2 -O3优化的知识点)(竞赛可用)

發(fā)布時間:2023/12/10 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++手动开启O2优化(以及-O -O1 -O2 -O3优化的知识点)(竞赛可用) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
  • O1優(yōu)化會消耗少多的編譯時間,它主要對代碼的分支,常量以及表達(dá)式等進(jìn)行優(yōu)化。?

    O2會嘗試更多的寄存器級的優(yōu)化以及指令級的優(yōu)化,它會在編譯期間占用更多的內(nèi)存和編譯時間。?

    O3在O2的基礎(chǔ)上進(jìn)行更多的優(yōu)化,例如使用偽寄存器網(wǎng)絡(luò),普通函數(shù)的內(nèi)聯(lián),以及針對循環(huán)的更多優(yōu)化。?

    Os主要是對代碼大小的優(yōu)化,我們基本不用做更多的關(guān)心。?通常各種優(yōu)化都會打亂程序的結(jié)構(gòu),讓調(diào)試工作變得無從著手。并且會打亂執(zhí)行順序,依賴內(nèi)存操作順序的程序需要做相關(guān)處理才能確保程序的正確性。??

  • -O0: 不做任何優(yōu)化,這是默認(rèn)的編譯選項。

  • -O和-O1: 對程序做部分編譯優(yōu)化,對于大函數(shù),優(yōu)化編譯占用稍微多的時間和相當(dāng)大的內(nèi)存。使用本項優(yōu)化,編譯器會嘗試減小生成代碼的尺寸,以及縮短執(zhí)行時間,但并不執(zhí)行需要占用大量編譯時間的優(yōu)化。 打開的優(yōu)化選項:

  • O2優(yōu)化能使程序的編譯效率大大提升。

  • 從而減少程序的運(yùn)行時間,達(dá)到優(yōu)化的效果。

  • C++程序中的O2開關(guān)如下所示:

#pragma GCC optimize(2)
  • 同理O1、O3優(yōu)化只需修改括號中的數(shù)即可。
  • 只需將這句話放到程序的開頭即可打開O2優(yōu)化開關(guān)。

?

開啟O3優(yōu)化:

#pragma GCC optimize(3,"Ofast","inline")

?

總結(jié)

以上是生活随笔為你收集整理的C++手动开启O2优化(以及-O -O1 -O2 -O3优化的知识点)(竞赛可用)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。