Повышение производительности при использовании преобразования TimeUnit в Java

Мне было интересно, есть ли какой-либо удар по производительности (даже если он минимальный) с использованием преобразования TimeUnit. например, TimeUnit.MINUTES.toMillis(5) против 300000

Если это метод, который будет вызываться часто, и он должен запускать toMillis каждый раз, есть ли у него снижение производительности? Или, возможно, компилятор уже устанавливает преобразованное значение один раз, и на него никогда больше не ссылаются?

1 ответ

Вот исходный код для TimeUnit (JDK 10): http://hg.openjdk.java.net/jdk10/jdk10/jdk/file/tip/src/java.base/share/classes/java/util/concurrent/TimeUnit.java

Я не могу сказать, что будет делать компилятор, но вам, возможно, будет лучше рассчитать значение самостоятельно, либо вам лучше рассчитать и кэшировать значение, либо вам лучше будет заранее создать таблицу поиска. Как @Turing85 проницательно указал в комментарии на ваш вопрос: "Трудно сказать, что JIT будет или не будет делать. Или может делать только иногда".

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

Другие вопросы по тегам