2011-09-12 67 views

回答

5

我不是瞭解對於正常調用的任何性能差異;當通過動態調用或反射訪問時,更多受限訪問可能需要更多工作,因爲調用者可能需要更仔細地進行驗證。在正常的JIT編譯的情況下,訪問可以由CLR驗證一次,然後視爲理所當然。我猜可能JIT編譯(和IL驗證)本身對於更多限制性訪問可能會稍微慢一些 - 但是我發現很難相信它會很重要。

這應該是絕對不是是決定使用哪種可訪問性的一個因素,即使某種程度上存在我不知道的微小性能差異。如果您認爲您可以通過爲您的設計設置「自然」以外的輔助功能來獲得性能優勢,那麼您肯定應該對前/後案例進行基準測試 - 我懷疑您會很難找到現實世界中的差異是可以衡量的。

同樣的建議適用於各種微型優化:無論如何它幾乎從來都不是一個好主意,並且肯定是只能在仔細測量中進行。

+1

我很驚訝,你不是更明確。話雖如此,我正在闡述「不」的過程。 – harpo

+1

可能不會通過JIT引擎對私有方法進行優化(內聯,例如)更積極? – sehe

+0

@sehe:你爲什麼這麼想?即使一種方法是公開的,它在JIT編譯之後也不能改變... –

0

私人,受保護或公共方法之間的績效沒有可衡量的差異。

如果你專注於優化,可能你應該嘗試讓你的瓶頸代碼更「程序化」而不是面向對象。它會做小改進。

相關問題