У меня есть приложение, которое становится довольно большим, и время запуска Spring составляет около 20 секунд. Для производственного использования это нормально, но для разработки это большая боль.
Какой хороший инструмент профилирования или подход может дать мне именно ту информацию, которая мне нужна, чтобы понять, что занимает так много времени? Может быть, это что-то, что я могу оптимизировать?
Мое приложение - это довольно типичное веб-приложение на Spring/hibernate. В нем около 50 таблиц базы данных и несколько сотен бобов (около 200-300... я не считал). Есть несколько @Configurable бобов. Много сканирования компонентов. Я также использую Spring Security.
Я сделал несколько профилирований primitize с помощью log4j - только на настройке INFO. Вот некоторые вещи, которые занимают немного времени:
Есть несколько вещей, которые занимают от .5 до, может быть, 1 секунды максимум, но эти три были самыми большими.