Вопрос: Какова стоимость выполнения обертывания объекта внутри другого объекта? Как в ОЗУ, так и при использовании ЦП увеличиваются от прямого вызова объекта.Код эффективности обертывания
Дополнительные детали: я работаю над созданием структуры, которая будет обертка код для выделения плагинов от реализации основной программы. Вопрос продолжает выскакивать в голове «Какова стоимость исполнения». Я знаю, что это будет больше, чем прямой доступ к обернутому коду. Однако я не могу найти какие-либо надежные источники или данные в Интернете, чтобы точно показать, какие результаты ожидать. Это проблема, поскольку я разрабатываю это, чтобы заменить реализацию примерно для 40 проектов. Поэтому, когда вас спрашивают, какой уровень накладных расходов ожидается в обновлении, мне нужно иметь некоторые данные.
Кроме того, на случай, если кто-либо не знает, что я подразумеваю под обернутым кодом. Это процесс, в котором объект создается с помощью интерфейса, который отправляет все вызовы методов объекту, хранящемуся в объекте. Это делается для того, чтобы скрыть реализацию объекта, когда исходный объект не может быть изменен или изменен, чтобы включить интерфейс. Ниже приведен пример того, что я говорю.
public class WrapperObject implements WrapperInterface
{
private SomeObjectClass theObject;
public WrapperObject(SomeObjectClass theObject)
{
this.theObject = theObject;
}
public void method1()
{
theObject.method1();
}
public void method2()
{
theObject.method2("someData", 1);
}
}
Также, я знаю о JIT в java и другой технике оптимизации JVM. Я спрашиваю, что я могу ожидать от накладных расходов, используя такую систему для большого проекта. Поскольку я буду обертывать или конвертировать почти все, прежде чем он попадет в код плагина. Сюда входят методы, которые можно назвать несколькими 1000 раз в секунду, а также методы, которые вызываются только один раз.
Я также буду создавать прототипы в ближайшие дни, чтобы проверить производительность. Я просто ищу какой-то дизайн, чтобы лучше понять, чего ожидать. Вместо того, чтобы смотреть слепо на мой код, угадывая, что тратить время.
Измерить его, не делает предположение. Стоимость исполнения может быть 0, если JIT решает встроить или вызвать обернутый объект напрямую. – john16384
Как я уже говорил, я знаю о JIT, и я не делаю предположений. Я планирую провести тестирование на прототипах. Я ищу некоторые знания, которые помогут объяснить, что я вижу.Таким образом, я не делаю предположений и не догадываюсь о том, что происходит. – DarkGuardsman
Если стоимость выполнения упаковки объекта является проблемой, вы можете отказаться от объектно-ориентированного программирования. Это последняя вещь, о которой вы должны беспокоиться в Java. – jaco0646