我想知道當我在一種形式中實例化多個類時性能如何。以一種形式實例化多個類的性能問題
e.g
Public Class frmClass
Dim obja As New ClassA
Dim objb As New ClassB
Dim objc As New ClassC
'I'll use those classes' attribute in here
'
End Class
感謝您的幫助!
我想知道當我在一種形式中實例化多個類時性能如何。以一種形式實例化多個類的性能問題
e.g
Public Class frmClass
Dim obja As New ClassA
Dim objb As New ClassB
Dim objc As New ClassC
'I'll use those classes' attribute in here
'
End Class
感謝您的幫助!
那麼,這將取決於這些類是多麼昂貴。如果他們的構造者決定下載整個維基百科,這將是昂貴的......但一般來說,這應該不成問題。
創建您需要的類的實例,而不是其他人 - 您應該沒問題。在.NET中創建對象通常很便宜。爲了清楚起見,我建議您只在需要時創建對象,而不是創建所有對象,然後再使用所有對象。
您還應該考慮您是否真的希望這些變量是實例變量 - 它們在邏輯上是否是表單狀態的一部分?它們中的一些是局部變量會更有意義嗎?一個擁有大量狀態的類可能需要重構。這是爲了獲得乾淨的代碼而不是性能。
對象的創建一般很便宜,而且連最基本的Form
實際上是將不得不被加載的其他相關事物的整體堆。坦率地說:去做吧。
除非你的物體實際上很大/有一些巨大的連接/等成本 - 在這種情況下也許考慮延遲加載。但一般(特別是託管代碼)這不會是一個問題。
有些事情你可能想等待OnLoad
,純粹是因爲你需要hWnd--但這些更爲罕見。
也謝謝Marc! – RedsDevils 2009-11-06 08:32:20
這實際上取決於這些類是如何設計的以及它們在調用構造函數時執行的操作。如果它們具有默認的空構造函數,那麼實例化三個新對象的性能將會不明顯。
非常感謝託尼小馬! – RedsDevils 2009-11-06 08:30:54