2012-05-27 52 views
0

假設我在我的項目中有一些課。現在我創建另一個「班級圖書館」,並把這個班級搬到那裏。所以要安裝這個類,現在需要加載額外的dll(類庫dll)。從項目類和類庫執行類是否有區別?

據我所知,現在我有一點點另一個程序,因爲現在.NET需要讀取兩個文件(原始exe文件+類庫dll文件),而不是隻有一個exe文件。但除此之外還有什麼區別?程序加載後,這個類最初位於何處(exe或dll)很重要?我在內存上有絕對相同的程序嗎?

特別是如果我可以在運行時將我的類移動到類庫時引入任何延遲,我很感興趣?

這個問題是我的前一個問題的結果how to separate several "a little bit connected" projects?

回答

3

的DLL加載到進程的內存空間後,應該有比較,如果相同的代碼已經包含在你的EXE項目在性能上沒有差異代替。實際上,通過在專門的地方使用通用代碼,您可能會看到長期的性能提升。如果您傾向於將普通代碼放入主項目中,那麼最終可能會導致代碼的大量重複,從而導致維護頭痛,並最終導致更復雜的應用程序佔用更大的內存空間)。

2

不成熟的優化是萬惡之源。 - 不要以爲你可以通過將所有代碼放在一個程序集中來提高應用程序的性能。維護增益遠遠超過CLR將另一個文件加載到內存中的重要性。

+0

我明白你的觀點並表示同意。但是如果我可以獲得性能,我仍然很感興趣。只是爲了瞭解事情是如何工作的,只是爲了知道我是否可能*必須對此進行剖析.. – javapowered

+0

在浪費分析時,性能增益會降低。這真的不值得。你知道如果你把座椅上的所有墊子都拆下來,你的車會開得更快嗎? –

相關問題