国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 學院 > 開發設計 > 正文

了解C++異常處理的系統開支

2019-11-17 05:45:46
字體:
來源:轉載
供稿:網友
  為了在運行時處理異常,程序要記錄大量的信息。無論執行到什么地方,程序都必須能夠識別出假如在此處拋出異常的話,將要被釋放哪一個對象;程序必須知道每一個入口點,以便從try塊中退出;對于每一個try塊,他們都必須跟蹤與其相關的catch子句以及這些catch子句能夠捕捉的異常類型。這種信息的記錄不是沒有代價的。確保程序滿足異常規格不需要運行時的比較(runtime comparisons),而且當異常被拋出時也不用額外的開銷來釋放相關的對象和匹配正確的catch字句。但是異常處理確是有代價的,即使你沒有使用try,throw或catch要害字,你同樣得付出一些代價。  讓我們先從你不使用任何異常處理特性也要付出的代價談起。你需要空間建立數據結構來跟蹤對象是否被完全構造(constrUCted)(參加條款10),你也需要系統時間保持這些數據結構不斷更新。這些開銷一般不是很大,但是當采用不支持異常的方法編譯的程序一般比支持異常的程序運行速度更快所占空間也更小。  在理論上,你不能對此進行選擇:C++編譯器必須支持異常,也就是說,當你不用異常處理時你不能讓編譯器生產商消除這方面的開銷,因為程序一般由多個獨立生成的目標文件(object files)組成,只有一個目標文件不進行異常處理并不能代表其他目標文件不進行異常處理。而且即使組成可執行文件的目標文件都不進行異常處理,那么還有它們所連接的程序庫呢?假如程序的任何部分使用了異常,其它部分必須也支持異常。否則在運行時程序就不可能提供正確的異常處理。  不過這只是理論,實際上大部分支持異常的編譯器生產商都答應你自由控制是否在生成的代碼里包含進支持異常的內容。假如你知道你程序的任何部分都不使用try,throw或catch,并且你也知道所連接的程序庫也沒有使用try,throw或catch,你就可以采用不支持異常處理的方法進行編譯,這可以縮小程序的尺寸和提高速度,否則你就得為一個不需要的特性而付出代價。隨著時間的推移,使用異處理的程序庫開始變得普遍了,上面這種方法將逐漸不能使用,但是根據目前的軟件開發情況來看,假如你已經決定不使用任何的異常特性,那么采用不支持異常的方法編譯程序是一個性能優化的合理方法。同樣這對于想避開異常的程序庫來說也是一個性能優化的好方法,這能保證異常不會從客戶端程序傳遞進程序庫里,不過同時這樣做也會妨礙客戶端程序重定義程序庫中聲明的虛擬函數,并不答應有在客戶端定義的回調函數。  使用異常處理的第二個開銷來自于try塊,無論何時使用它,也就是無論何時你想能夠捕捉異常,那你都得為此付出代價。不同的編譯器實現try塊的方法不同,所以編譯器與編譯器間的開銷也不一樣。粗略地估計,假如你使用try塊,代碼的尺寸將增加5%-10%并且運行速度也同比例減慢。這還是假設程序沒有拋出異常,我這里討論的只是在程序里使用try塊的開銷。為了減少開銷,你應該避免使用無用的try塊。  編譯器為異常規格生成的代碼與它們為try塊生成的代碼一樣多,所以一個異常規格一般花掉與tyr塊一樣多的系統開銷。什么?你說你認為異常規格只是一個規格而已,你認為它們不會產生代碼?那么好,現在你應該對此有新的熟悉了。  現在我們來到了問題的核心部分,看看拋出異常的開銷。事實上我們不用太關心這個問題,因為異常是很少見的,這種事件的發生往往被描述為exceptional(異常的,罕見的)。80-20規則(參見條款16)告訴我們這樣的事件不會對整個程序的性能造成太大的影響。但是我知道你仍然好奇地想知道假如拋出一個異常到底會有多大的開銷,答案是這可能會比較大。與一個正常的函數返回相比,通過拋出異常從函數里返回可能會慢三個數量級。這個開銷很大。但是僅僅當你拋出異常時才會有這個開銷,一般不會發生。但是假如你用異常表示一個比較普遍的狀況,例如完成對數據結構的遍歷或結束一個循環,那你必須重新予以考慮。  不過請等一下,你問我是怎么知道這些事情的呢?假如說支持異常對于大多數編譯器來說是一個較新的特性,假如說不同的編譯器異常方法也不同,那么我如何能說程序的尺寸將增大5%-10%,它的速度也同比例減慢,而且假如有大量的異常被拋出,程序運行速度會呈數量級的減慢呢?答案是令人驚恐的:一些傳聞和一些基準測試(benchmarks)(參見條款23)。事實是大部分人包括編譯器生產商在異常處理方面幾乎沒有什么經驗,所以盡管我們知道異常確實會帶來開銷,卻很難猜測出開銷的準確數量。  謹慎的方法是對本條款所敘述的開銷有了解,但是不深究具體的數量。(即定性不定量 譯者注)不論異常處理的開銷有多大我們都得堅持只有必須付出時才付出的原則。為了使你的異常開銷最小化,只要可能盡量就采用不支持異常的方法編譯程序,把使用try塊和異常規格限制在你確實需要它們的地方,并且只有在確為異常的情況下(exceptional)才拋出異常。假如你在性能上仍然有問題,總體評估一下你的軟件以決定異常支持是否是一個起作用的因素。假如是,那就考慮選擇其它的編譯器,能在C++異常處理方面具有更高實現效率的編譯器。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
欧美黑人乱大交| 国产91久久久久| 亚洲高清在线免费| 一级二级三级在线观看| 精品视频二区| 人人澡人人爽| 伊人影院在线视频| 亚洲欧美日韩综合精品网| 亚洲第一成年免费网站| 九九热视频在线观看| 九九热视频精品在线观看| 国产麻豆视频网站| 精品视频vs精品视频| 人xxxx性xxxxx欧美| 中文字幕在线资源| eeuss影院在线| 国产高潮av| 五月综合网站| 九九热在线免费视频| 精品无吗乱吗av国产爱色| 超碰在线人人| 国产精品冒白浆免费视频| 精品美女视频在线观看免费软件| 亚洲sss视频| 国产深夜福利| 国产免费av在线| av在线不卡播放| 国产激情自拍| 国产毛片在线| 日本黄色免费网址| 国产精品69一区二区三区| 麻豆国产在线视频| 轻轻色免费在线视频| 国产福利电影在线观看| 国产免费自拍视频| 国自产拍在线网站网址视频| 亚洲尤物在线视频| 国产成人天天5g影院| 高清av在线| 免费网站看黄yyy222| av高清资源| 在线天堂视频| 99re热视频在线| 99热免费观看| 2018狠狠干| 国产黄色在线| 国产成人亚洲精品播放器下载| 国产美女在线播放| 99视频免费| 最近免费中文字幕在线第一页 | 免费看ww视频网站入口| 中文字幕av在线| 影音av资源站| 日本黄在线观看| 开心激情五月婷婷| 91av久久| 国产精品久久在线| 精品视频在线一区二区| 精精国产xxxx视频在线| 精品999视频| 亚洲激情丁香| 久热久精久品这里在线观看| 国产麻豆免费| 一本大道香蕉久久| 国产卡一卡二卡三| 国产精品爱久久久久久久小说| 精品日韩av| 麻豆精品视频入口| 国产不卡在线| 欧美日韩亚洲第一页| 欧美性猛交xxxx免费看蜜桃 | 97一区二区三区| 亚洲电影视频在线| 最近中文字幕mv免费高清电影| 精品999视频| 丁香花高清在线观看完整版 | 亚洲国产精华液| 好男人社区在线视频| 国产极品美女到高潮| 美女网站在线观看| 91资源在线观看| 中文字幕在线免费看| 伊人222成人综合网| 国产中文字幕在线视频| 四虎国产精品永久| 91视频久色| 国产日韩网站| 狠狠操五月天| 免费a级毛片在线播放| 亚洲精品影视在线| 国产www在线观看| 国产午夜在线| 国产乱人视频免费播放| 日本高清不卡中文字幕| 一区免费观看| 亚洲国产日韩成人综合天堂| 99综合精品久久| 91看片在线观看| 国产图片综合| 国产黄色在线观看| 精品无人乱码| 精品一区二区在线欧美| 97国产在线| 伊人影院在线视频| 在线观看免费观看在线91| 2021av天天| 在线视频观看你懂的| 在线视频中文字幕久| 亚洲精品自拍区在线观看| 99在线视频观看| 亚洲综合在线网| www.色婷婷| 日本电影全部在线观看网站视频| 在线视频观看亚洲| 亚洲欧美日韩综合精品网| www.jizz在线观看| 天堂在线中文资源| 精品视频一二三| 欧美性猛交xxxx免费看蜜桃| 开心丁香婷婷深爱五月| 成人欧美亚洲| 国产二区三区四区| 欧洲有码在线视频| 国产美女视频一区二区三区| 国产精品久久麻豆| eeuss影院www在线播放| 九九热免费视频| 中文字幕一区二区三区免费视频| 国产日本在线视频| 日本亚洲欧美| 国产网站麻豆精品视频| 在线天堂av| 国产毛片在线看| 午夜在线视频播放| 国产一二三区在线视频| www.毛片| 在线免费国产视频| 91超碰国产在线| 日本亚洲欧美| 91黄色在线| 国产网站av| 国产永久免费高清在线观看| 国产精品剧情一区二区在线观看| www.色五月| 国产成人天天5g影院| 狠狠操五月天| 亚洲第一区视频| 精品卡一卡卡2卡3网站| 综合图区亚洲白拍在线| 九九久久久2| 午夜小视频在线| 97视频网站| 国产丝袜自拍| 日本中文字幕高清视频| 九九精品九九| 国产在线www| 国产在线更新| 麻豆网站在线| 啪啪免费视频一区| eeuss影院www在线播放| 制服丝袜中文字幕在线观看| 国产成人精品18| 精品亚洲综合| 四虎国产精品永久地址998| 亚洲人av在线| 欧美高清xxxx性| 久草亚洲一区| 国产麻豆高清视频在线第一页 | 中文字幕av中文字幕| 日本视频一二三区中文字幕| 精品国产福利一区二区在线 | 青草视频在线播放| 青青草免费在线视频| gogogo影视剧免费观看在线观看| av亚洲男人天堂| 欧美啪啪精品| 中文字幕有码在线视频| 国产高清视频在线观看| 永久免费在线观看| 免费网站看黄yyy222| 免费在线黄色网址| 欧美日韩在线视频免费观看| 久久av少妇| 国产精品国产国产aⅴ| 亚洲va国产日韩欧美精品色婷婷| 九色精品视频在线观看| 国产福利一区二区在线精品| www.久草.com| 国产精品福利视频一区二区三区| 精品a在线观看| 福利视频在线导航| 国产成人夜间影院在线观看| 日本高清不卡中文字幕| 中文字幕av中文字幕| 在线免费看黄网站| 国产一级黄色片免费| 亚洲精品乱码电影在线观看| 五月天丁香在线| 免费久久网站| av免费在线观看网站|