В настоящее время я анализирую качество кода для контроллера метода , который имеет несколько инициализаций ArrayLists следующим образом:
public controller(Aggregate agr) {
List<FCompound> fCompounds = new ArrayList<>();
List<CCompound> cCompounds = new ArrayList<>();
List<Dist> oDist = new ArrayList<>();
List<Trans> oTrans = new ArrayList<>();
List<CContent> cContents = new ArrayList<>();
List<FDist> fDidst = new ArrayList<>();
List<CDist> cDist = new ArrayList<>();
List<FDist> efDist = new ArrayList<>();
List<CDist> ecdist = new ArrayList<>();
List<KList> kList = new ArrayList<>();
, что фактически являются неизменными при присвоении различным объектам ArrayList через списки, возвращаемые службами БД
List<FCompound> fCompounds = DBservice().getAllfCompounds();
List<CCompound> cCompounds = DBservice().getAllcCompounds();
List<Dist> oDist = DBservice().getODist();
List<Trans> oTrans = DBservice().getOTrance();
List<CContent> cContents = DBservice().cContent();
List<FDist> fDidst = DBservice().getFDist();
List<CDist> cDist = DBservice().getcDist();
List<FDist> efDist = DBservice().getefDist();
List<CDist> ecdist = DBservice().getecDist();
List<KList> kList = DBservice().getKDist();
}
, почти сразу означающие, что все объекты ArrayList, созданные в первом фрагменте кода, Toast для сборки мусора
Во-первых, проблема в том, что этот метод контроллера вызывается для каждого запроса из-за плохой конструкции контроллера 1 monolithi c, который обслуживает 100% трафика приложения c, в настоящее время Я начинаю сомневаться в том, что это приведет к утечке памяти из-за меньшего пространства кучи?
Что бы обойти эту проблему, инициализировала бы списки с нулем как
List<FCompound> fCompounds = null;
или это ничего не изменит?
есть ли способ проанализировать пространство кучи с помощью стресс-теста для этого м енит