青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Bugs

MMORPG game develop.

[引用]More Effective C++ 條款15


條款15:了解異常處理的系統開銷


為了在運行時處理異常,程序要記錄大量的信息。無論執行到什么地方,程序都必須能夠識別出如果在此處拋出異常的話,將要被釋放哪一個對象;程序必須知道每一個入口點,以便從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塊生成的代碼一樣多,所以一個異常規格一般花掉與try塊一樣多的系統開銷。什么?你說你認為異常規格只是一個規格而已,你認為它們不會產生代碼?那么好,現在你應該對此有新的認識了。


現在我們來到了問題的核心部分,看看拋出異常的開銷。事實上我們不用太關心這個問題,因為異常是很少見的,這種事件的發生往往被描述為exceptional(異常的,罕見的)。80-20規則(參見條款16)告訴我們這樣的事件不會對整個程序的性能造成太大的影響。但是我知道你仍舊好奇地想知道如果拋出一個異常到底會有多大的開銷,答案是這可能會比較大。與一個正常的函數返回相比,通過拋出異常從函數里返回可能會慢三個數量級。這個開銷很大。但是僅僅當你拋出異常時才會有這個開銷,一般不會發生。但是如果你用異常表示一個比較普遍的狀況,例如完成對數據結構的遍歷或結束一個循環,那你必須重新予以考慮。

posted on 2008-03-27 17:06 Bugs 閱讀(1011) 評論(4)  編輯 收藏 引用

評論

# re: [引用]More Effective C++ 條款15 2008-03-27 17:14 Bugs

我自己對異常處理的心得有下列幾點,僅供參考,希望大家說說各自的意見。
1.盡量避免使用異常處理,能不能則不用,可以用C Style的Error處理方式來代替。(對于渴望性能很實用)
2.即使要使用,也一定把Scope降到最低,盡量減少多重嵌套。
3.如果整個生產系統使用了不穩定的第三方庫,建議使用異常處理,畢竟服務器穩定勝于性能。  回復  更多評論   

# re: [引用]More Effective C++ 條款15 2008-03-31 22:41 Fox

對異常處理沒有特別關注過,搬著板凳先看到  回復  更多評論   

# re: [引用]More Effective C++ 條款15 2008-04-01 15:11 酷勤網

哪里有這本書的網上譯文?  回復  更多評論   

# re: [引用]More Effective C++ 條款15 2008-04-03 13:58 Bugs

不知道,你去找找吧  回復  更多評論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久久国产精品www| 亚洲在线视频| 久久精品人人| 亚洲国产日韩综合一区| 欧美国内亚洲| 欧美日韩成人综合天天影院| 一区二区三区毛片| 亚洲视频在线二区| 国产曰批免费观看久久久| 久久久欧美精品sm网站| 美女黄网久久| 中文高清一区| 欧美一级久久久| 亚洲国产日日夜夜| 艳妇臀荡乳欲伦亚洲一区| 国产日韩av在线播放| 久久艳片www.17c.com| 欧美sm视频| 欧美伊人久久大香线蕉综合69| 香蕉久久夜色精品| 日韩视频三区| 午夜视频一区| 一区二区三区欧美在线| 午夜在线观看免费一区| 亚洲日韩中文字幕在线播放| 一本色道**综合亚洲精品蜜桃冫| 国产区二精品视| 欧美激情精品久久久久久黑人| 欧美视频一区在线观看| 久久综合九色综合欧美狠狠| 欧美精品免费播放| 久久色中文字幕| 欧美日韩精品三区| 女仆av观看一区| 国产精品自在欧美一区| 亚洲日本欧美日韩高观看| 国产精品色网| 亚洲精品色图| 在线观看一区二区视频| 亚洲综合另类| 亚洲网站啪啪| 嫩草伊人久久精品少妇av杨幂| 亚洲欧美日韩精品一区二区| 欧美顶级少妇做爰| 欧美一区二区三区视频在线观看| 久久久美女艺术照精彩视频福利播放 | 久久精品91| 欧美激情久久久久久| 欧美中文在线视频| 欧美午夜不卡视频| 免费久久久一本精品久久区| 国产精品乱码久久久久久| 亚洲免费精彩视频| 亚洲黄一区二区三区| 久久国产精彩视频| 噜噜噜91成人网| 亚洲一区二区视频| 欧美精品videossex性护士| 久久黄色网页| 国产综合欧美在线看| 亚洲图片你懂的| 一区二区三区国产| 欧美日韩免费看| 亚洲区第一页| 亚洲精品欧美日韩| 欧美精品一卡| 亚洲精品视频免费观看| 一区二区三区产品免费精品久久75 | 欧美一区二区三区喷汁尤物| 亚洲男女自偷自拍图片另类| 欧美大片免费观看| 亚洲国产精品日韩| 亚洲精品一区二区三区不| 免费国产一区二区| 亚洲青色在线| 亚洲欧美在线一区| 国产精品婷婷午夜在线观看| 亚洲欧美卡通另类91av| 久久久久99精品国产片| 永久免费视频成人| 欧美精品v国产精品v日韩精品| 亚洲激情偷拍| 午夜久久99| 极品少妇一区二区三区| 欧美成人一品| 亚洲一区二区高清| 久热精品视频在线观看一区| 亚洲国产中文字幕在线观看| 欧美激情综合网| 亚洲午夜在线观看视频在线| 亚洲影视在线播放| 欧美在线视频免费| 91久久久久久久久| 欧美一级视频| 亚洲欧洲在线播放| 久久―日本道色综合久久| 99re在线精品| 亚洲欧美日韩电影| 狠狠色综合网| 欧美人与性动交α欧美精品济南到| 日韩亚洲欧美一区| 久久综合久久久久88| 日韩午夜高潮| 国产揄拍国内精品对白| 欧美日韩伦理在线| 久久美女性网| 亚洲夜间福利| 美女精品一区| 欧美伊人精品成人久久综合97 | 亚洲午夜av| 在线精品国精品国产尤物884a| 欧美日韩你懂的| 老司机凹凸av亚洲导航| 亚洲亚洲精品在线观看 | 欧美一级黄色录像| 99国产精品99久久久久久粉嫩| 国产欧美一区视频| 久久久蜜桃精品| 亚洲欧美日本另类| 99精品福利视频| 在线高清一区| 国产综合一区二区| 国产精品视频一区二区三区| 欧美大片一区二区| 狼狼综合久久久久综合网| 亚洲欧美不卡| 在线视频精品一| 亚洲精品你懂的| 久久在线视频在线| 久久精品在线观看| 欧美一区网站| 性欧美xxxx视频在线观看| 中国女人久久久| 日韩一区二区电影网| 亚洲国产精品传媒在线观看| 狠狠干狠狠久久| 国产综合久久| 黄网站免费久久| 在线观看日韩av电影| 一区三区视频| 亚洲国产精品一区二区第四页av| 国内精品久久久久久久影视蜜臀| 国产女人18毛片水18精品| 国产精品美女主播| 国产视频一区欧美| 国产视频一区在线观看| 国产亚洲成人一区| 国产一区二区主播在线| 激情91久久| 亚洲国产成人不卡| 亚洲精品视频在线观看网站| 亚洲国产精品美女| 99re66热这里只有精品3直播| 99成人在线| 午夜精品久久久| 噜噜噜躁狠狠躁狠狠精品视频| 免费观看日韩av| 亚洲精品1区2区| 亚洲视频每日更新| 午夜精品一区二区在线观看| 性视频1819p久久| 牛人盗摄一区二区三区视频| 欧美精品1区2区| 欧美日韩激情小视频| 国产精品久久久久一区| 国产亚洲欧美日韩美女| 亚洲国产精品成人精品| 亚洲一区二区网站| 欧美高清在线播放| 欧美91视频| 亚洲精品国精品久久99热| 一区二区三区四区精品| 欧美在线关看| 免费久久精品视频| 国产精品大全| 亚洲国产精品久久久久婷婷老年 | 久久青青草综合| 亚洲黄色小视频| 亚洲欧美日韩精品久久亚洲区| 久久久亚洲一区| 欧美日韩精品伦理作品在线免费观看| 欧美亚洲第一区| 在线观看精品一区| 亚洲女优在线| 男人的天堂亚洲| 亚洲免费视频在线观看| 女女同性女同一区二区三区91| 欧美日韩蜜桃| 亚洲欧洲综合另类| 久久久精品免费视频| 亚洲人成毛片在线播放女女| 午夜精品一区二区在线观看| 欧美日本一区二区三区| 国内视频精品| 欧美一区二区视频在线观看2020 | 日韩午夜在线播放| 免费在线观看日韩欧美| 国产一区二区日韩精品| 亚洲在线免费观看| 亚洲人午夜精品|