Влияет ли неиспользуемый импорт и объекты на производительность


У меня есть сомнения, создает ли неиспользуемый импорт и неиспользуемые объекты в коде Java какое-либо влияние на производительность?

предположим, что объект инициализирован и никогда не используется, что происходит? А какова стоимость неиспользованного импорта

5 51

5 ответов:

Это очень распространенный вопрос.

Как и большинство вопросов производительности, лучший подход-написать самый ясный и простой код, который вы можете, поскольку это улучшает ремонтопригодность кода и помогает гарантировать, что он работает достаточно хорошо даже после его изменения. (Умный / тупой / бесполезно подробный код может работать быстро, но поскольку он изменяется простыми смертными, он может стать намного медленнее)

неиспользуемые импорта имеют тривиальное влияние на компилятор, но нет импорта в байтовом коде или во время выполнения.

неиспользуемые объекты могут быть оптимизированы, но лучше всего избегать их, поскольку они почти всегда вызывают некоторое влияние на производительность, но что более важно, затрудняют чтение и обслуживание вашего кода.

неиспользуемый импорт не влияет на производительность во время выполнения. Это чисто механизм пространства имен. Тем не менее, вы всегда должны импортировать только то, что вам нужно для удобочитаемости и избегать конфликтов пространств имен, которые являются помехой.

помимо удобочитаемости кода и, следовательно, ремонтопригодности кода, может быть более быстрая компиляция кода java (однако, незаметная) путем очистки импорта, но производительность выполнения не влияет, так как байтовый код не влияет на неопрятный импортозамещающий. Сгенерированный байтовый код остается прежним.

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

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

Да, это немного влияет на производительность, если мы ссылаемся на неиспользуемый оператор импорта в нашем классе java. Компилятор Java проверит ссылки, упомянутые в инструкции import, и на минутном уровне это повлияет на производительность вашего класса.

спасибо