Debug和Realease版本的区别
vs中的程序有debug和release兩個版本,Debug通常稱為調(diào)試版本,通過一系列編譯選項的配合,編譯的結果通常包含調(diào)試信息,而且不做任何優(yōu)化,以為開發(fā) 人員提供強大的應用程序調(diào)試能力。而Release通常稱為發(fā)布版本,是為用戶使用的,一般客戶不允許在發(fā)布版本上進行調(diào)試。所以不保存調(diào)試信 息,同時,它往往進行了各種優(yōu)化,以期達到代碼最小和速度最優(yōu)。為用戶的使用提供便利。
 
 
?????? debug程序通常比release程序要慢,尤其是處理視頻方便release要比debug快很多。在release模式對程序進行調(diào)試的時候經(jīng)常會遇到變量雖然初始化了,但是在查看其值的時候卻發(fā)現(xiàn)是一個隨機的數(shù)并不是初始化的值,有時候在對變量進行監(jiān)視的時候了,會出現(xiàn)找不到變量的情況,原因大致如下:
???? debug跟release在初始化變量時所做的操作是不同的,debug是將每個字節(jié)位都賦成0xcc, 而release的賦值近似于隨機。如果你的程序中的某個變量沒被初始化就被引用,就很有可能出現(xiàn)異常:用作控制變量將導致流程導向不一致;用作數(shù)組下標將會使程序崩潰;更加可能是造成其他變量的不準確而引起其他的錯誤。所以在聲明變量后馬上對其初始化一個默認的值是最簡單有效的辦法,否則項目大了你找都沒地方找。代碼存在錯誤在debug方式下可能會忽略而不被察覺到。debug方式下數(shù)組越界也大多不會出錯,在release中就暴露出來了,這個找起來就比較難了。
 
 
?? 只有DEBUG版的程序才能設置斷點、單步執(zhí)行、使用 TRACE/ASSERT等調(diào)試輸出語句。REALEASE不包含任何調(diào)試信息,所以體積小、運行速度快。
總結
以上是生活随笔為你收集整理的Debug和Realease版本的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: CDH 6 安装 Hbase 二级索引
 - 下一篇: Spark提交 指定 kerberos