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