Падение производительности при использовании преобразования TimeUnit в Java - PullRequest
0 голосов
/ 11 мая 2018

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

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

1 Ответ

0 голосов
/ 11 мая 2018

Вот исходный код для 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 вВы, вероятно, получите больше пользы от ответов, если разместите пример кода, чтобы дать контекст своему вопросу.Возможно, существует более эффективный способ решения общей проблемы, поэтому вам не придется беспокоиться о таких мелких деталях, как производительность, при преобразовании минут в миллисекунды.

...