Какие и сколько накладных расходов возникают, когда я использую ссылочный класс?

StackOverflow https://stackoverflow.com/questions/1810623

Вопрос

Я видел, что поток демона запускается всякий раз, когда мы создаем ссылочный объект, используя любой ссылочный класс, например

 WeakReference, 
 FinalReference, 
 SoftReference, 
 PhantomReference,
 Referemce

И если у нас иерархическая структура потоков, то на каждом уровне инициируется дополнительный поток демона.

Это было полезно?

Решение

Я ожидаю, что накладные расходы будут очень малы для большинства приложений. Если вы не знаете, что это проблема, я бы об этом не беспокоился. Я никогда не видел, чтобы ссылки появлялись в профилировщике как проблема, и я использую разные профилировщики в течение 10 лет.

Другие советы

Единственный способ, которым я вижу, что это становится проблемой, - это если количество потоков у вас вырастает до 2 цифр и более.

Очень грубо говоря:

  • 10 потоков будут почти незаметны
  • 100 должно быть в порядке, так как они в основном просто ждут и пережевывают немного памяти каждый
  • 1000 вызовет у вашей системы головную боль, потому что эти ресурсы будут отсутствовать в другом месте
  • 10000 поставит вашу систему на колени, если не убьет ее окончательно.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top