170 похожих чатов

Заметил одну особенность. Mapstruct очень замедляется при маппинге Page<Entity> в

Page<EntityDto>, когда вызываю .map(myMapper::toDto) над Page<Entity>. А вот для List почти без разницы во времени. Как-нибудь можно ускорить маппинг для Page?

25 ответов

97 просмотров

Для того чтобы ускорить, надо понять, что именно ускорять. Посмотри имплементацию маппера для Page<Entity>. Запусти профайлер и посмотри в каких местах идут просадки

ascjke- Автор вопроса
Vladislav Zhuravskiy
Для того чтобы ускорить, надо понять, что именно у...

В интерфейсе метода возвращающего Page<> и не описывал. Вот отрывок кода в контроллере return new ResponseEntity<>(SuccessResponse.builder() .data(itemService.getAllWithPagination(page, size) .map(item -> itemMapper.toDto(item, context))) .build(), HttpStatus.OK); Тут он проходит так же как и для List<Entity> по сути

ascjke
В интерфейсе метода возвращающего Page<> и не опис...

Почему ты решил что медленно выполняется. Это какие субъективные ощущения или есть конкретные цифры? Прогони этот метод через профайл

ascjke- Автор вопроса
Vladislav Zhuravskiy
Почему ты решил что медленно выполняется. Это каки...

время ответа в 3-4 раза медленее чем без маппинга. Профайл проверю, ок

ascjke- Автор вопроса
central hardware
а вариант с листом?

В интерфейсе описывал. @InheritInverseConfiguration D toDto(E entity, @Context CycleAvoidingMappingContext context); @InheritInverseConfiguration List<D> toDto(List<E> entity, @Context CycleAvoidingMappingContext context); itemMapper.toDto(item, context) -> D toDto(E entity вот этот метод вызывается

Как понял что замедляется?)

ascjke
В интерфейсе метода возвращающего Page<> и не опис...

так а аменно вот этот код но с листом вместо пейджа?

ascjke
время ответа в 3-4 раза медленее чем без маппинга....

Вангую в листе все поля проинициализированы, а в пейдже все лейзи не загружены

ascjke- Автор вопроса
Alexandr ∨∧‾ Emelyanov
Как понял что замедляется?)

без маппера Page из 10 объектов возвращает за 15-20 мс с маппером 48-55 мс

ascjke
без маппера Page из 10 объектов возвращает за 15-2...

ну так смапить ясен пень надо. ты говорил что с листом быстрее - там замерял?

ascjke- Автор вопроса

Возможно потомучто Page еще getTotalElements сериализуется а это +1 запрос каунта всех записей

ascjke- Автор вопроса
Alexandr ∨∧‾ Emelyanov
Вангую в листе все поля проинициализированы, а в п...

Хмм, в модели я прописал все нужные аннотации. Где то LAZY где то EAGET c BatchSize. Они ведь должны применяться и для List и для page? Hibernate 6.2.7

ascjke- Автор вопроса
Alexandr ∨∧‾ Emelyanov
в смысле без разницы?

когда возвращаю List<> findAll() из 100 объектов: с маппером 70-80 мс без маппера 60-65 мс

ascjke
без маппера Page из 10 объектов возвращает за 15-2...

я поставлю на то что в варианте с листом нету настоящей пагинации вот он и возращается быстрее

ascjke
Хмм, в модели я прописал все нужные аннотации. Где...

должны. но при этом на маппинге ты эти поля трогаешь и подтягиваешь прямо во время мапинга

ascjke- Автор вопроса
central hardware
я поставлю на то что в варианте с листом нету наст...

так я об этом и говорю. Что List<Entity> быстрее мапится чем Page<Entity> ))

ascjke
так я об этом и говорю. Что List<Entity> быстрее м...

ну тут не в маппинге дело, а в запросе на count

ascjke
когда возвращаю List<> findAll() из 100 объектов: ...

И сравнивай на одинаковом количестве. Если проверяешь на 10 элементах в page то и в лист вытаскивай 10 элементов

ascjke- Автор вопроса
Vladislav Zhuravskiy
И сравнивай на одинаковом количестве. Если проверя...

Что для List, что для Page из 100 элементов время одинаковое) Я хотел чтобы Page для 10 элементов за 15-20 мс отвечал😅

ascjke
Что для List, что для Page из 100 элементов время ...

Ну тогда надо убрать все что медленное и оставить только быстрое 😊

ascjke
Что для List, что для Page из 100 элементов время ...

разницы в 100 или 10 элементов не будет. понимаю между 10 и 10 000 000 000 - была бы разница чувствительная

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта