Медленная загрузка сущностей в экранах

Добрый день,

После миграции проекта c cuba на jmix мы заметили замедление открытия табличных форм, в которых загружаются большое количество записей. Отладка показала, что при открытии большую часть времени занимает выполнение метода JpaLazyLoadingListener#processValueHolders, в частности вызовы методов FetchPlans#builder(java.lang.Class<?>) и ReflectionHelper.getFieldValue.

Flame graph:
flamegraph1

По оптимизации ReflectionHelper в GitHub уже есть задача issue #1247.

Для оптимизации FetchPlans#builder мы заменили использование ObjectProvider на factory class, что бы избежать вызова autowire для каждого создаваемого экземпляра FetchPlanBuilder. Это решило проблему. Возможно такую оптимизацию стоит сделать и в коде платформы. Я могу создать PR в проекте GitHub, если вариант с factory class подойдет.

Добрый день!
Конечно, ждем PR.

2 симпатии