самый точный тип времени в Java? - PullRequest
1 голос
/ 20 января 2010

Я хочу сравнить производительность определенных операций в моем приложении.

Кроме использования объекта Date, есть что-нибудь более точное?

Ответы [ 3 ]

7 голосов
/ 20 января 2010

public static long nanoTime() - Возвращает текущее значение наиболее точного доступного системного таймера в наносекундах.

Как заявил в своем ответе Зак Скривенер :

Я предполагаю, что, поскольку System. nanoTime () использует «самый точный из доступных системных таймеров», который, по-видимому, имеет точность в миллисекундах в вашей системе, вы не можете получить ничего лучше.

2 голосов
/ 20 января 2010

Чтобы получить время ЦП, вы можете использовать getCurrentThreadCpuTime компонента управления потоками.
Возвращает время ЦП, использованное фактическим потоком в наносекундах:

    ThreadMXBean threadMX = ManagementFactory.getThreadMXBean();
    long time = threadMX.getCurrentThreadCpuTime();

    // do something 

    time = threadMX.getCurrentThreadCpuTime() - time;  // CPU time in nanoseconds

проверьте документация для получения подробной информации и некоторых проблем, таких как измерение времени процессора не включены.

2 голосов
/ 20 января 2010

Если вы измеряете прошедшее время, вычитая две метки времени, вы должны использовать System.nanoTime(), чтобы получить эти метки времени.Вот для чего это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...