Недавно в OpenJDK произошли изменения, связанные с оптимизацией метода getCurrentThreadUserTime. Ранее этот метод использовал сложный процесс, включающий чтение данных из /proc, что значительно замедляло выполнение. Новый коммит заменил старую реализацию на более эффективный вызов clock_gettime, что позволило сократить время выполнения в среднем с 11 до 0.279 микросекунд. В результате, производительность улучшилась в 40 раз, что соответствует диапазону, указанному в отчёте о проблеме, созданном в 2018 году.
Изменения касаются использования clockid_t, который теперь кодируется таким образом, что позволяет избежать затрат на поиск в дереве процессов, что дополнительно ускоряет выполнение. Эти новшества продемонстрировали, что простота и знание низкоуровневых деталей системы могут привести к значительным улучшениям в производительности. Оптимизация была одобрена 3 декабря 2025 года и войдёт в JDK 26, ожидаемый к выпуску в марте 2026 года.
tasani.ru