МОЕ профилирование приложения, показывающее большую Сборку "мусора" наверху. У профилировщика does'nt есть развертка в Сборку "мусора". Что я должен сделать для сокращения этих издержек?
У меня есть многие короткое проживание arraylists и некоторые долговечные, которые только умирают, когда приложение закрывается.
По сути, вам следует сократить работу сборщика мусора. Есть определенные «шаблоны», по которым нужно много работать.
Так что в вашем случае я предполагаю, что у вас либо кризис среднего возраста с недолговечными списками. Или вы просто безумно размещаете список.
В первом случае: постарайтесь сократить срок жизни списков. Я не могу сказать, как выглядит решение для вашего приложения.
Во втором случае: старайтесь не размещать так много списков. Может быть, ты сможешь использовать правильные типы значений? Или массивы фиксированного размера? Или изменить структуру кода таким образом, чтобы не требовалось меньше списков?
В любом случае, я бы порекомендовал профилировать ваше приложение и посмотреть, сколько памяти вы выделяете и сколько можно собрать в первом поколении.
Если у вас слишком много накладных расходов на сборку мусора, уменьшите объем мусора. Попробуйте повторно использовать списки (предварительно выделите и используйте их, очистите, когда закончите).
Если вы используете ArrayList с типами значений, попробуйте переключиться на использование List
взамен.
Если накладные расходы на сборку мусора становятся серьезной проблемой для производительности, вам следует взглянуть на свой проект и повторно оценить количество создаваемых вами недолговечных объектов.
Если это приложение работает как служба или выполняет большой объем работы, прежде чем вернуться к пользовательскому интерфейсу, вам может потребоваться изменить модель сборки мусора.
Без дополнительных подробностей сложно дать хорошую рекомендацию.