2009-11-27 60 views
1

我看到有一個守護線程運行,每當我們創建使用任何引用類引用的對象像當我使用Reference類時,會發生多少開銷?

WeakReference, 
FinalReference, 
SoftReference, 
PhantomReference, 
Referemce 

如果我們有層次的線程結構,那麼在每個級別有啓動額外的守護線程。

+0

如果我能改寫你的問題,我會講法「當我使用一個參考類什麼過頂球發生嗎?」 – 2009-11-27 21:33:27

+0

更改的問題 – DKSRathore 2009-11-27 21:36:05

回答

2

我預計的開銷,大多數應用都非常小。除非你知道這是一個問題,否則我不會擔心。我從來沒有見過參考資料顯示爲探查器中的問題,我已經使用了10年不同的探查器。

+0

好的。那麼我肯定會嘗試優化我的應用程序緩存的東西給Wekreferences。 – DKSRathore 2009-11-28 06:19:04

+0

軟參考可以顯示出來。回收的時間相對比較晚,如果你有很多人,你可能會遇到嚴重的性能問題,因爲他們需要回收多個GC運行。 – kohlerm 2009-12-01 14:48:29

+0

WeakReferences可以很容易地丟棄,並且可以持續幾秒或更少。 SoftReference對此更好,但不要像@kohlerm指出的那樣將大部分內存存儲在它們中。如果這些引用的內存部分相對較小,則開銷也是如此。 – 2009-12-01 21:31:19

1

我看到這成爲一個問題的唯一方法是,如果你的線程數量的增長以及進入2個位數多。

粗略地講:

  • 10個線程將是下一個不易察覺
  • 100應該是OK的,因爲他們大多隻是等待,嚼起來有點每個內存
  • 1000會給你的系統很頭疼,因爲這些資源將缺少其他地方
  • 10000將帶給您的系統癱瘓,如果不徹底殺死它。
+0

好的信息。謝謝卡爾。 – DKSRathore 2009-11-28 06:20:30

相關問題