Страницы

Поиск по вопросам

четверг, 11 апреля 2019 г.

java методы и их параметры - влияние передачи через аргументы больших данных на производительность

Как влияет на быстродействие программы то, что я передаю от метода к методу параметр, имеющий большой объем данных. К примеру переменную типа BufferedReader, в которой содержится контент объемом 3 мегабайта?
Или на скорость работы программы это не влияет?


Ответ

В java объекты всегда передаются только по ссылке (за исключением примитивов, т.е. всегда будет прокидываться лишь ссылка объект, передаваемый параметром в метод, которая занимает всего 4 байта, хотя на самом деле зависит от разрядности системы: на 32-разрядной - 4 байта, на 64-разрядной - 8 байт). Таким образом, это абсолютно не критично, по крайней мере, необходимо выполнить просто неимоверное количество передач параметров по ссылке, чтобы это возымело серьезные последствия на современных машинах.
Если, конечно, вы не копируете это объект прямо в теле метода (правда зачем?).
Правда, стоит быть аккуратным при autoboxing'е примитивов при передаче в качестве параметров в функцию и при работе с контейнерами, подробнее можете прочитать здесь

Комментариев нет:

Отправить комментарий