2010-11-03 30 views

回答

2

它所傳遞的只是一個參考。 將不會有重大的成本。如果方法很小且線性,JIT甚至可以選擇將其內聯 - 但最終,這是而不是將有所作爲。

堅持使用方法 - 然後你只有一個地方去維護。

+0

+2 .. 1代表答案,1代表光速跳動答覆計時.. :) – Dienekes 2010-11-03 11:03:51

0

爲了可維護性,最好將方法分解出來。

表現明智,你不會注意到任何差異。

0

除非你正在研究需要在覈動力裝置或火星上的美國國家航空航天局內部運行的代碼,否則你總是可以更好地編寫易於維護的代碼!這意味着重構你的代碼,所以你永遠不會重複自己。

從理論上講,它當然更快地有內聯指令而不是調用方法,但實際上它遠遠超過維護它的缺點。

+1

爲什麼在火星探測器的核動力裝置上這不會同樣重要?我聽說火星漫遊者運行調試代碼打印調試的東西到那裏的控制檯,因爲這是他們運行最多的代碼,並進行測試,因此他們的代碼發貨。 – 2010-11-03 11:08:37

+0

我會假設在這些環境中,您需要儘可能多地從每個位和字節中取出性能,並且如果保存幾個不需要調用方法的週期,維護調用堆棧等等,這可能是一個可接受的交易。但也許我錯了,這隻適用於當我們在64kbit ram的2mhz機器上運行時。 – 2010-11-03 11:13:17

+1

這些是你真的不希望它出錯的地方,因此對優異的可讀性和可維護性的需求是最重要的。 – 2010-11-03 13:02:58

0

小心修改控件的方法所在的位置。如果該方法是另一個類的一部分,則將控制傳遞給它將會破壞擁有該控件的類的封裝。

+0

^^ hmmm ..指出.. – Dienekes 2010-11-06 10:29:58

0

DRY(不要重複自己)原則說你創建了方法並稱之爲3-4次。性能受到的影響非常小,除非十億分之一秒的結果超過維護代碼超過3-4倍的額外開銷,否則它不值得考慮。

總之,除非你真的能真正證明額外的維護,而不是抓住每個最後的處理器週期*開銷,然後創建方法。 (*)鑑於這是一個文本框,因此很可能是一個商業應用程序,您最大的性能擔心更可能是數據庫和Web服務。

相關問題