Я пытаюсь оптимизировать свой код с точки зрения памяти для проекта Android, над которым я работаю.
Я ищу способ минимизировать накопленный мусор, мой главный вопрос - стоит лиВнедрение (через кинжал) переменных в класс, если они должны использоваться только внутри определенного метода (либо инициализации, либо для другой цели), или я должен объявлять их только в соответствующем методе, увеличит сборку мусора после выполнения этого метода?
Fi, есть ли случай, когда нам нужен следующий случай:
@Inject
Foo foo;
@Overrides
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DaggerAppComponent.create().inject(this);
}
public void bar() {
foo.bar();
}
вместо приведенного ниже (учитывая, что объект будет использоваться только в методе bar)?
@Overrides
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public void bar() {
Foo foo = new Foo();
foo.bar();
}
Не является ли второй случай более эффективным с точки зрения памяти, что делает объект готовым для сборщика мусора?
Наконец, есть ли случай, когда рекомендуется использовать System.gc ()?
Спасибо!