Время выполнения команды в jshell - PullRequest
0 голосов
/ 15 марта 2020

Я искал вариант, чтобы jshell сообщал о времени выполнения команды, но я не смог найти ни одной.

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

Пример

Чтобы проверить время, необходимое для выполнения конкатенации строк по 100 КБ (например, для сравнения с StringBuffer.append())

My Basi c решение:

/reset
/set feedback verbose
int i;
long t0;
String s="";
for(t0=System.nanoTime(),i=0; i<100000; ++i){
s+=i;
} long elapsed=System.nanoTime()-t0;

Где jshell выполняет l oop за один единственный шаг и печатает истекшее время после завершения всех итераций.

Затем для сравнения с другое решение (с использованием StringBuffer)

/reset
/set feedback verbose
int i;
long t0;
StringBuilder b=new StringBuilder();
for(t0=System.nanoTime(),i=0; i<100000; ++i){
b.append(i);
} long elapsed=System.nanoTime()-t0;

Есть ли лучший, более чистый и умный способ?


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

...