3 回答

TA貢獻1858條經驗 獲得超8個贊
我站在“不慢”的一邊-或者更確切地說,“不夠慢,不值得在正常使用中避開它們”。我寫了兩個矮的?文章關于這件事。對于基準測試方面有一些批評,主要是因為“在現實生活中會有更多的堆棧需要通過,所以您會銷毀緩存等”-但是使用錯誤代碼在堆棧上工作也打開緩存,所以我不認為這是一個特別好的論點。
我不支持在不符合邏輯的情況下使用異常。例如,int.TryParse
完全適合于從用戶轉換數據。當讀取機器生成的文件時,這是適當的,因為失敗意味著“文件沒有按其應有的格式,我真的不想嘗試處理這個問題,因為我不知道還有什么問題?!?/p>
當在“只有合理的情況下”使用異常時,我從未見過有一個應用程序的性能受到異常的嚴重損害?;旧?,除非您有重大的正確性問題,否則異常不應該經常發生,如果您有重大的正確性問題,那么性能不是您面臨的最大問題。

TA貢獻1824條經驗 獲得超6個贊
(警告2-它寫得很好,如果你是一個技術人員,你會讀到最后,然后必須彌補你的工作時間:)
執行摘要:進展緩慢。它們被實現為Win 32 SEH異常,因此有些甚至會通過環形0 CPU邊界!顯然,在現實世界中,你會做很多其他的工作,所以奇怪的例外將不會被注意到,但如果你使用他們的程序流,除了你的應用程序被錘擊。這是MS營銷機器對我們不利的又一個例子。我記得有一個Microsoftie告訴我們,他們是如何產生絕對零開銷的,這完全是亂七八糟的。
克里斯引用了一句中肯的話:
事實上,即使在引擎的非托管部分,CLR也在內部使用異常。但是,除了例外情況外,還有一個嚴重的長期性能問題,這必須在您的決定中考慮到。
- 3 回答
- 0 關注
- 438 瀏覽
添加回答
舉報