Я искал вариант, чтобы 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: я знаю, что мера, которую вы получаете с этим подходом, не точна, хотя это быстрый способ получить приблизительное представление