Я сумніваюся, чи впливають невикористані імпорти та невикористані об’єкти в коді Java на якість впливу?
Припустимо, що об’єкт ініціалізований і ніколи не використовується, що відбувається? А яка вартість невикористаного імпорту?
Я сумніваюся, чи впливають невикористані імпорти та невикористані об’єкти в коді Java на якість впливу?
Припустимо, що об’єкт ініціалізований і ніколи не використовується, що відбувається? А яка вартість невикористаного імпорту?
Organize Imports
функцію Eclipse ?
Відповіді:
Це дуже поширене питання.
Як і більшість питань щодо продуктивності, найкращим підходом є написання максимально чіткого та простого коду, оскільки це покращує ремонтопридатність коду та допомагає забезпечити його достатню ефективність навіть після його зміни. (Розумний / тупий / непотрібний багатослівний код для початку може працювати швидко, але оскільки його змінюють прості смертні, він може ставати набагато повільнішим)
Невикористаний імпорт має незначний вплив на компілятор, але його немає в байтовому коді або під час виконання.
Невикористані об’єкти можна оптимізувати, але їх найкраще уникати, оскільки вони майже завжди спричиняють певний вплив на продуктивність, але, що важливіше, ускладнюють читання та підтримку коду.
Невикористаний імпорт не впливає на продуктивність під час виконання. Це суто механізм простору імен. Тим не менше, вам завжди слід імпортувати лише те, що вам потрібно для читабельності, і уникати зіткнень простору імен, які становлять неприємність.
Окрім читабельності коду та, отже, ремонтопридатності коду, може бути швидша компіляція Java-коду (однак, непомітна) шляхом впорядкування імпорту, але продуктивність виконання це не впливає, оскільки на байтовий код не впливає неохайний імпорт. Створений байт-код залишається незмінним.
unused imports have no performance impact
Хоча вплив на компіляцію мінімальний, вплив на розгортання може бути поганим. Я щойно натрапив на невикористаний імпорт, який вимагав окремої бібліотеки, яка стала залежністю maven. Подальшої проблеми перехідної залежності, на щастя, не знайшли, але .war
файл був товстішим без причини. Додайте до цього зайву банку в завантажувачі класів webapp.
Незважаючи на те, що невикористаний імпорт у файлі Java не завдає шкоди, він без потреби збільшує довжину та розмір вихідного файлу Java.