Java currentTimeMillis () использовал несколько раз проблему - PullRequest
0 голосов
/ 25 февраля 2019

Я создаю программу, в которой каждый раз, когда она переходит к функции, она получает время выполнения этой функции, но проблема в том, что, когда она входит в первую функцию, следующие функции получат 0 или 1 мс времени выполнения:

function1: 
long start = System.currentTimeMillis();
//
//
//some code
//
//
//
long end = System.currentTimeMillis();
System.out.println("function1 took: " + (end - start) + "ms"); 

function2: 
long start = System.currentTimeMillis();
//
//
//some code
//
//
//
long end = System.currentTimeMillis();
System.out.println("function2 took: " + (end - start) + "ms"); 

function3: 
long start = System.currentTimeMillis();
//
//
//some code
//
//
//
long end = System.currentTimeMillis();
System.out.println("function3 took: " + (end - start) + "ms"); 

вывод:

функция1 заняла: 49 мс

функция2 заняла: 1 мс

функция 3 заняла: 0 мс

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

1 Ответ

0 голосов
/ 25 февраля 2019

Хотя это зависит от вашего метода и реализации, я думаю, ms недостаточно точен, чтобы дать вам это время.

Вы можете использовать ссылку Как мне рассчитать время выполнения метода в Java? для более точного времени.

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

...