У нас есть большой класс (сотни методов), интерфейс которого снабжен рекомендациями по ленивой загрузке. При первоначальной загрузке этого объекта и отправке его клиенту мы делаем ограниченную загрузку наиболее часто используемых и последних данных. В настоящее время мы используем java Proxying для прослушивания каждого вызова. При каждом вызове мы проверяем «Есть ли у нас данные? Если есть параметр даты, загрузили ли мы данные для этой даты?» Если ответ отрицательный на любой из этих вопросов, мы возвращаемся к серверу и загружаем полный объект.
Это работает, однако отражение java, проксирование и дополнительные накладные расходы на вызовы, такие как базовые геттеры (например, getId()
), отрицательно влияют на производительность некоторого нашего кода.
Я хочу начать использовать byte buddy, чтобы, надеюсь, снизить стоимость вызова, особенно для простых полей, которые всегда загружаются.
Как лучше всего подойти к этому?
Кроме того, поскольку этот объект сериализуется (сериализация Java, сервер создает эти объекты и передает их клиенту), как правильно убедиться, что эти динамически созданные классы могут передаваться от сервера к клиенту по сети?