Оптимизация производительности в OpenJDK: Устранение неэффективного кода

Каждые несколько недель я просматриваю коммиты OpenJDK и на прошлой неделе заметил интересное изменение: коммит 858d2e434dd заменил чтение времени процессора потоков из файла /proc на вызов clock_gettime, что привело к уменьшению кода и повышению производительности. Ранее метод user_thread_cpu_time использовал сложный парсинг данных из /proc/self/task//stat, что значительно замедляло процесс. Новый подход использует один системный вызов, что сокращает время выполнения с 11 микросекунд до 279 наносекунд. Это улучшение может увеличить скорость в 30-400 раз. Также была обнаружена возможность дальнейшей оптимизации через создание clockid для текущего потока, что позволит избежать лишних системных вызовов. Коммит был одобрен 3 декабря 2025 года и станет частью JDK 26, ожидаемого в марте 2026 года.

Понравилась статья? Поделиться с друзьями: