Visual Studio 編譯優化選項:Debug與Release、禁止優化與O1、O2、Ox優化

Debug與禁止優化

Debug模式是調試模式,會有很多冗余的調試代碼,供開發者調試程序使用。

在這里插入圖片描述
VS是默認使用Debug模式的,我使用的是VS 2017。

在Debug模式下,是默認開啟禁止優化的,我們來查看一下

  • 在左側源文件的main.c處右鍵單擊,選擇屬性
    在這里插入圖片描述
  • 找到C/C++下的優化
    在這里插入圖片描述
    可以看到,默認是禁用優化

Release與不同等級的優化

首先切換到Release模式
在這里插入圖片描述
再查看一下優化
在這里插入圖片描述
可以看到,默認優化方式是O2

打開下拉菜單
在這里插入圖片描述
可以看見有三種優化方式,這個你是可以自己選擇的。

Debug與Release的區別

  • Debug是調試模式,僅供開發者調試使用,不能作為產品發布
  • Release是發布模式,生成的可執行文件可以作為產品發布

Release中三種優化模式的區別

發布的產品,不同優化級別有所區別

  • O1:這個模式下,文件大小最小,速度比O2慢
  • O2:這個模式下,速度最快,文件大小比O1大
  • Ox:這個模式下,兼顧文件大小與速度,可能犧牲兼容性

備注:這只是大致的含義,不包含細節,具體細節請閱讀專業文檔。

使用反匯編對比這幾種方式

VS 2017 查看反匯編

Debug與Release的區別

如果要將中文翻譯成英文,有兩種方式

  • 直譯
  • 意譯

將高級語言翻譯成匯編語言,也有兩種方式

  • 直譯:Debug
  • 意譯:Release

Debug是直接將你寫的高級語言語法進行翻譯,基本上是按照你的書寫格式進行的,而Release則是自己寫的,但是含義完全一樣,這里和語言的意譯不同,是真的完全一樣。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/384715.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/384715.shtml
英文地址,請注明出處:http://en.pswp.cn/news/384715.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【匯編語言】記錄一組數中負數的個數,8086與MIPS匯編程序

題目及解答 統計由DATA開始的字節數據串中負元素的個數,數據個數在COUNT單元,統計結果存入RLT單元。 8086匯編: ; 統計數字中負數的個數【循環中加了個if else】 assume ds:datasg datasg segmentdata db 1,-2,-3,-1,-4,0,-2 count dw 7 ; 數…

【數字邏輯入門】計算機如何存儲1位二進制數

0 前言 本文將會以R-S鎖存器為例,引出鎖存器的核心和本質,之后再帶你構建更多類型的鎖存器,你能夠: 感受到由淺入深的學習方式體會到掌握核心本質的快感深刻理解核心套外殼的設計理念(產品迭代1.0–>2.0–>3.0…

【算法訓練】DAY1:整數反轉

1 前言 題目來源于Leetcode。 重點:理清邏輯,忽略細節,模仿高手,五毒神掌 2 題目分析 題目很容易理解,先分成兩個部分 正數負數 先解決正數 最開始想到的是 intchar數組long唯一增加的就是,先判斷整…

【匯編語言】(x86)test與跳轉指令(je jle jge jg jl……)組合的含義

在x86指令集中,經常遇到test指令與條件跳轉指令組合,這是什么含義呢? 博主表示,查了很多資料也沒人完全說清楚…… 這里只用最簡單的,抽象層次進行說明,不講原理。 舉例 test edx,edx jle 某地址含義是&…

【藍橋杯】BASIC-8 回文數(2020-06-08)

題目 試題 基礎練習 回文數 資源限制 時間限制:1.0s 內存限制:512.0MB 問題描述   1221是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的,編程求所有這樣的四位十進制數。    輸出格式   按從小到大的順序輸出滿足條件的…

【算法訓練】Leetcode 1295. 統計位數為偶數的數字(2020.06.09 )

1 題目 1295. 統計位數為偶數的數字 給你一個整數數組 nums,請你返回其中位數為 偶數 的數字的個數。 示例 1: 輸入:nums [12,345,2,6,7896] 輸出:2 解釋: 12 是 2 位數字(位數為偶數) 345 …

Vivado設置指定源文件進行RTL優化

像VS編譯器設置啟動項一樣,Vivado中,也有類似設計,可以看到,當前選中的是ALU,那么進行RTL優化的時候,會優化RTL的結果,而不是別的,如何改成別的? 在某文件上右鍵單擊選擇…

【完整流程】用VSCode替換Vivado默認編輯器

本文樓主找了很多資料,選出了最有用的資料,按照教程走,就可以順利搞定,先給出畫面 很酷很方便,同時還有 自動補全檢測錯誤列選自動生成仿真測試文件 等重要功能 Vivado原來的編輯器是這樣的…… 關鍵是&#xff0c…

IEDA中JavaDoc的自動生成、手動生成,以及生成html文檔

1 自動生成類的注釋 JavaDoc就是java特有的一種注釋。 1.1 配置 首先&#xff0c;IDEA點擊File-->Settings 然后Editor-->File and Code Templates-->Class 之后在這地方&#xff0c;添加一些代碼 /** * ${description} * * <p> * 創建日期&#xff1a;$…

【java】父類與子類的引用賦值關系

理清楚4個目標 父類引用&#xff08;“名”&#xff09;父類對象&#xff08;“實”&#xff09;子類引用子類對象 理清楚幾個操作 // 父類 public class parent{}// 子類 public class sun{}父類引用指向父類對象 parent p1 new parent();子類引用指向子類對象 son s1 …

IDEA自動生成 構造方法 get set方法

對于一個類&#xff0c;創建好成員變量后 右鍵單擊&#xff0c;選中Generate 然后 這幾個依次是 構造方法getsetget和set 我們可以選中一個&#xff0c;然后選中要生成的變量&#xff0c;點擊OK 這樣就可以自動生成 構成方法get方法set方法

IDEA快速修改類名和文件名

在你要修改的類名上&#xff0c;選中類名&#xff0c;然后 右鍵單擊選中Refactor選中Rename 也可以使用快捷鍵 Win用戶是Shift F6

java中 靜態方法與成員方法何時使用

靜態方法 不操作成員變量&#xff0c;可以直接調用 是用來直接對傳入的數據進行操作的 成員方法 需要操作對象的成員變量的 區別 靜態方法&#xff0c;不能操作成員變量&#xff0c;只是一個操作成員方法&#xff0c;可以操作成員變量&#xff0c;不僅僅是操作&#xff0…

通過編程解決問題的正確思路

1. 先知道我們面對一個怎樣的問題 2. 考慮這個問題在現實生活中&#xff0c;我們要用怎樣的方式去解決 3. 從現實到計算機&#xff0c;如何用編程的思路解決 4. 實現&#xff0c;編碼和測試 5. 迭代 現實問題自然語言解決方案機器語言解決方案編碼實現測試迭代

數據庫設計的核心原則 外鍵的設計 提高插入數據速度

大道至簡&#xff1a;數據庫設計的核心原則 數據庫設計&#xff0c;不得不承認&#xff0c;有很多專業化的理論知識&#xff0c;但是對于初學者來說&#xff0c;只需要大道至簡的原則就可以了。 能不重復的就不重復&#xff0c;太重復的就拆開&#xff0c;使用指定數據做識別…

MySQL提高插入數據的效率(結合JDBC)

0 解決問題最佳途徑&#xff1a;直接找官方 先說明的是&#xff0c;有問題直接去找官方文檔&#xff0c;而不應該去百度搜索&#xff0c;您很容易體驗到&#xff0c;搜索引擎很難快速找到真正對您有價值的解決方案&#xff0c;而官方文檔是最快捷的途徑。 本篇也是基于官方文…

【計算機心理學】先設計再實現 在實現中完善設計

先設計再實現 在物理學中&#xff0c;通常都是先理論證明觀點&#xff0c;再進行實踐&#xff0c;然后&#xff0c;再有世界各地的科學家根據理論進行實驗&#xff0c;以證明觀點正確。 在計算機軟件開發&#xff0c;硬件開發等&#xff0c;都講求先邏輯抽象設計&#xff0c;…

【FPGA VerilogHDL】第一次嘗試:LED燈基礎實驗

0 實驗環境 0.1 軟件環境 ISE 14.7win10vivado 2017.4 0.2 硬件設備 ISE適用的FPGA開發板&#xff1a;ALINK AX309 1 需求 能夠靈活控制4個LED燈 2 Verilog實現 timescale 1ns / 1ps // // Create Date: 14:18:20 08/08/2020 // Module Name: led // Revision…

使用ISE一鍵生成bit文件

我們知道&#xff0c;這幾個&#xff0c;在第一次做好源文件之后&#xff0c;需要一個個進行右鍵單擊-->run&#xff0c;以發現錯誤。 但是之后的調試&#xff0c;只要一點點變化&#xff0c;哪怕是注釋變化&#xff0c;都需要重新run3次&#xff0c;太麻煩了。 不過經過實…

【FPGA Verilog】實驗二:key按鍵基礎實驗

只說一下經驗和教訓 1 必須按照設計流程走 不要因為實驗簡單&#xff0c;就直接進行綜合&#xff0c;比如按照 設計編碼RTL優化仿真綜合管腳分配&#xff0c;實現下載 一定要按照這個步驟來。 2 必須先查看開發板說明文檔 開始出了一個令人困惑的問題&#xff0c;后來發現…