2012-08-30 60 views
1

是否有效使用cardlayout內存?例如,如果我將20個JPanel加載到cardlayout中,它可能會佔用大量的內存空間。加載少量面板並稍後加載一些並卸載不再使用的面板會更好嗎?cardlayout vs內存效率

+0

我認爲更有組織您的JPanels形式將是如果你使用TabbedPane,因爲@Robin提到內存使用會更多總之你可以通過'java -jar -Xmx2048m yourjar.jar' –

+1

*「爲你的JVM添加更多內存。」例如,如果我將20個JPanel加載到cardlayout中,它可能會佔用大量內存空間。「 * JRE可以使用典型的默認內存大小存儲數以千計的面板。所以'可能不'。這取決於你如何定義「很多」,但要記住,內存很便宜。 –

回答

2

它會更好裝入幾個面板和後裝載更多一些和卸載,不會使用任何更多

一個CardLayout確實會保持強引用其中加入了所有Component白車身總成到它。所以是的,從記憶的角度來看,如果你不再需要它們,再去掉Component會更好。

是cardlayout內存使用效率

大概約的效率是任何其他佈局的使用。唯一的區別是,在使用CardLayout時,您只能同時看到1個面板。但添加20面板到CardLayout將或多或少使用相同數量的內存作爲將它們添加到一個FlowLayout