VS解決方案配置Debug和Release選項


前言

本文章基於VisualStudio2017編寫
前兩天騰訊電話面試中面試官問到既然平時有使用VS進行項目調試,那介紹一下VS中Debug選項和Release選項有什么不同,我聽到這問題時,知道Debug選項是我們平時使用VS要開始運行時點的那一個按鈕:
這里寫圖片描述
但是這個release是真的沒有注意到過,我甚至都不確定面試官說的英文單詞是什么。於是非常尷尬地,我跟面試官重復了好幾次 “啊?release?” “re–lea–se?” 這個問題在我表示不理解后作罷…

今天在用VS調試數據挖掘的線性回歸作業,這個每次運行都要讀取25000*384個csv文件中的數據,並且對這些數據進行梯度下降算法計算,每次迭代都要遍歷這個規模的數據的程序,運行一次下來就要半個多小時時間。某次調試時,我注意到debug按鈕旁貌似有個下拉菜單,展開后,前幾天我感覺雲里霧里的”Release”靜靜躺在其中。
這里寫圖片描述

我先是想起前幾天面試被問到的這個問題后,google了Debug和Release的不同,簡單地瀏覽到Debug是方便debug調試的,而Release是能優化程序運行的之后,出於試驗目的選擇了Release選項運行程序。

這個原本在Debug配置下要運行半個小時的程序,使用Release配置,竟用了10S鍾就完成了運行…

引用Jessie J在聽到呼麥后的評論:“I’m absolutely shocked, but in a great way.”


這兩個選項是什么?

“Debug” and “Release” are actually just two labels for a whole slew of settings that can affect your build and debugging.
Debug選項和Release選項實際上是為一系列極多能影響程序的build和debugging的配置的標簽/名字。(這兩個配置選項的不同貫穿整個窗口,不止是優化配置不同)
Debug選項配置

Eelease選項配置

當你選擇了不同的運行選項,用來運行你的程序的配置就會不同,由此程序運行的效果就會受到影響。

它們有什么區別?

Debug選項稱為調試版本,顧名思義這個選項是調試的時候使用的。這個選項的配置中,所有代碼生成的優化都是關閉的,於是我們觸發斷點后可以通過即時/局部變量窗口來觀察對應的變量。
Program Debug Database files, which allow you to follow the execution of the program quite closely in the source during run-time.
All optimizations turned off, which allows you to inspect the value of variables and trace into functions that might otherwise have been optimized away or in-lined
A _DEBUG preprocessor definition that allows you to write code that acts differently in debug mode compared to release, for example to instrument ASSERTs that should only be used while debugging
Linking to libraries that have also been compiled with debugging options on, which are usually not deployed to actual customers (for reasons of size and security
Release選項稱為發布版本,這個選項的配置使得編譯器可以對我們的代碼進行低等級的,復雜的優化。優化后代碼可能會”面目全非“,導致單步調試變得不可行,我們也無法在變量窗口中看到變量,因為我們要觀察的變量可能被優化了。並且發布版本不會生成.PDB文件(.PDB文件讓調試器能知匯編指令與代碼行數之間的對應關系)

總之

需要調試程序時,選用Debug選項
需要程序快速運行時,選用Release選項

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM