LINUX.ORG.RU

Объясните смысл оптимизации

 , ,


0

1

Скажу сразу, я не настоящий сварщик, поэтому могу путаться в определениях.

Вчера посмотрел код на гитхабе, и обратил внимание на один момент. А именно:

-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.*;

Почему вызов необходимых трёх классов, заменили вызовом пакета целиком? Ведь теперь в пространстве имён будут лежать неиспользуемые классы, а это кушает память (или нет?).

★★★★★

а это кушает память

Может они дальше по цепочке и так их импортят, вот и решили сократить количество строк. А может IDE автоматически заменила на звезду, а автор коммита не заметил.

vurdalak ★★★★★
()

Ведь теперь в пространстве имён будут лежать неиспользуемые классы, а это кушает память (или нет?).

В пространстве имён компилятора? А не фиолетово ли? Или в jvm-байткоде появилась инструкций import и все имена уже не идут полными? )))

yyk ★★★★★
()

IDEA больше 4 импортов оптимизирует в .* .

Что касается перформанса, то как выше сказали на код не влияет, повлияет только на скорость компиляции, так как компилятору в этом случае придется резолвить по всему пакету, в отличие от случая, когда конкретные классы руками прописаны отдельно.

http://stackoverflow.com/a/8724125

nullb0t
()
Ответ на: комментарий от nullb0t

Щи, опять эта автоматика. Ну а для себя и других, что им, лень было проверить что и зачем подключается?

deep-purple ★★★★★
()
Ответ на: комментарий от yyk

В пространстве имён компилятора? А не фиолетово ли?

Я этим и интересуюсь, если без разницы, то всё понятно. Спасибо.

shrub ★★★★★
() автор топика

а это кушает память (или нет?).

Нет. Разница будет на этапе компиляции, абсолютно миниатюрная, причем в зависимости от реализации неизвестно в какую сторону

vertexua ★★★★★
()
Ответ на: комментарий от ii8_

Я увидел, что предложение криво составлено и тоже с первого раза прочитал не правильно, но править уже было лень :)

shrub ★★★★★
() автор топика
Последнее исправление: shrub (всего исправлений: 1)

^вышеотписавшимся,которые говорят что не влияет

возьмите system.io.write в цикле в файл/стандартный вывод

и тожесамое но заимпортив system.io.* выше

ну и ощутимое время циклов 10 сек хватит прогоните

сравните количество итераций цикла на время в двух кодах

будете удивлены

поэтому да *.* более оптимально чем срать инклюдами в коде,как по чистоте кода так и по финальному байткоду,так и по скорости(онже действительно инклюдит ЦЕЛЫЕ ДЕСЯТКИ МЕГАБАЙТ ЛИБ ВО ВРЕМЯ ВЫПОЛНЕНИЯ и выкидывает на завершении блока,цикл это покажет)

чтото на уровне вызова функций из внешнего файла вызывая их и определяя либу прямо в коде,и сравнение с предварительной загрузкой этой либы и вызов уже оттуда

g1966464
()
Ответ на: комментарий от yoghurt

Это же IDE, причем навороченная, на Java и для Java. Ты выражаешь желание что-то написать, IDE пишет что она считает нужным. Виндузятникам норм, они давно привыкли, что вместо управления компьютером выражают желание что-то сделать, а дальше уже воля высших сил. А мы да... с непривычки можно удивиться, почему IDE себя в копирайтах в соавторы не прописывает.

t184256 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.