2014-02-07 100 views
0

我在編程任務中使用了很多框架。雖然這些框架使代碼變得容易,但我發現越來越多的庫/框架層最終會損害性能。抽象和性能

我想知道是否有任何引用/故事有關如何太多的抽象層最終損害應用程序的性能。或者這不再是真的?

對於那些誰覺得這個問題是題外話:我感興趣的具體事件與量化性能下降(例如,應用了使用X框架,而不是編寫自定義代碼後慢10%)和途徑解決問題,而不是關於他們認爲應該發生的事情的主觀意見。

+0

我不認爲他們有必要*傷害*表現,但他們可以*隱藏*性能問題,因爲你並不總是知道函數實際上在做什麼*正在做* –

+0

@MikeChristensen:我完全同意。你會碰巧知道關於那些着名的故事/軼事嗎? – JRR

+0

不太確定要問軼事,故事,關於SO的引用是關於主題的 –

回答

2

有幾個因素決定時是否使用第三方框架來考慮:

  • 上市時間
  • 控制技術(一般(使用適當的第三方時,通常會提高)下降原因很明顯)
  • 性能(既可以提高或降低,有作出決定前進行基準測試)
  • 的大小影響二階:維護,建立/釋放複雜

一些框架是衆所周知的,並且通常值得一直使用(比如SLF4J或Java中的Joda或類似Boost或C++中的TBB)。

總而言之,這是非常主觀的,甚至取決於組織中AD專業知識的水平。有些開發人員可能值得從頭開始編寫一些東西,並對這項技術有完全的控制權,有些開發人員可能更適合使用第三方。

具有已知EOL日期的軟件應始終具有開發成本作爲最終決定因素。

軟件已知是一個組織的戰略平臺應該有偏見合理最小化可疑的第三方依賴關係。

關於軼事主題:我最近遇到了一個代碼,它用一個用boost :: spirit編寫的手動解析器來解析一個簡單的命令行。