Какие и сколько накладных расходов возникают, когда я использую ссылочный класс?
-
05-07-2019 - |
Вопрос
Я видел, что поток демона запускается всякий раз, когда мы создаем ссылочный объект, используя любой ссылочный класс, например
WeakReference,
FinalReference,
SoftReference,
PhantomReference,
Referemce
И если у нас иерархическая структура потоков, то на каждом уровне инициируется дополнительный поток демона.
Решение
Я ожидаю, что накладные расходы будут очень малы для большинства приложений. Если вы не знаете, что это проблема, я бы об этом не беспокоился. Я никогда не видел, чтобы ссылки появлялись в профилировщике как проблема, и я использую разные профилировщики в течение 10 лет.
Другие советы
Единственный способ, которым я вижу, что это становится проблемой, - это если количество потоков у вас вырастает до 2 цифр и более.
Очень грубо говоря:
- 10 потоков будут почти незаметны
- 100 должно быть в порядке, так как они в основном просто ждут и пережевывают немного памяти каждый
- 1000 вызовет у вашей системы головную боль, потому что эти ресурсы будут отсутствовать в другом месте
- 10000 поставит вашу систему на колени, если не убьет ее окончательно.
Не связан с StackOverflow