0

Проблемы производительности в связке Java Spring + React

Кирилл 6 years ago 0

Здравствуй, поскольку у меня особо нет знакомых программистов тем более знающих Реакт. Думаю тут мало чем можно помочь, но всё же буду рад любым идеям, или указаниям где копать.
Проблема следующая, мы делаем веб приложение для документа оборота. И оно ещё на стадии тестирование без нагрузки работает ну очень медленно.
То есть страницы преображаются 1-3 секунды, иногда больше иногда меньше но это очень заметно, даже клиенты уже начали капать на руководство.
У меня есть несколько учебных проектов, на PHP и на JAVA EE, по сути по объему передаваемых данных они сопоставимы, у нас пока передаётся данных очень маленькое количество, как и у меня в учебках, там даже больше. Ни картинок ничего такого просто, объекты договоров, проектов и т.д. полей мало текста почти никакого нет, то есть буквально номер, там заголовок и т.д. адрес фамилия поручителя. Количество обьектов на странице иликомпонентов наверное, то же 5-20 то есть это думаю мало при таком весе. Но вот разница мой учебный проект на Java работает с такой скоростью, как я привык видеть на сайтах, то есть есть отклик, почти моментальный. А тут просто всё грубо говоря тормозит. Разница думаю самая большая в том, что я на учебках не использую фронт, то есть сервер отдаёт мне сразу отрендеренную страницу, с вставленной инфой "JSP" - так как бек там по архитектуре + - похож, я начал подозревать фронт, так как там у нас происходит много работы, по разбору и сортировке данных и много запросов идет на сервер,ну как много 1-5 для прогрузки сраницы. Начал копать, сделал у себя метод, который с помошью AOP меряет время выполнения каждого метода, навесил на контроллеры, что бы как можно большую область охватить с точки входа так скахзать до выхода данных, и сколько памяти затрачено. ВЫшли вролне привычные цифры, 15-60ms то есть как и в учебных проектах всё работает быстро, логи вылетают моментально, а вот у фронта в это время идёт тупка в пару секунд. Я знаю что можно заюзать таймлайны ответа от сервера в хроме там время немного больше, но не настолько. то есть раза в 2-4 примерно.

Вот можешь какие нибудь мысли высказать как тестировать, где искать слабые места? может для Реакта это нормально? Мы делаем так называемые SPA прилождения может из за этого так, что у нас вся верстка и css динамически рендерятся это DOM дерево. Может можно урезать объем передаваемых данных до мининуна? то есть не объекты посылать там юзер или конракт и только пару нужных полей?
В общем начальство говорит не морочь голову, 2-3 секунды это нормально, на Сеньёр заказчини недовольны, старые приложения котрые делали до меня я смотрел, работают ещё медленнее, И это меня расстраивает на беке я пока сделал для тестирования всё что мог. Есть много оптимизаций которые я могу сделать на беке ещё, но это трудоёмко, проиндексировать б.д. указать дерево там, но мне кажется не в этом причина и у нас не высоконагруженный проект там человек 10 одновременно будут сидеть.