У меня есть простой класс, и я хотел бы измерить время вызова метода, как я могу это сделать? Ищете общий способ достичь этого, чтобы я мог применить его и к более сложным классам. Спасибоjava Как я могу измерить время вызова метода?
import java.io.*;
import java.util.*;
public class Turtle {
private String name;
private Formatter f;
public Turtle(String name, Formatter f) {
this.name = name;
this.f = f;
}
public void move(int x, int y) {
f.format("%s The Turtle is at (%d,%d)\n", name, x, y);
}
public static void main(String[] args) {
PrintStream outAlias = System.err;
Turtle tommy = new Turtle("Tommy",
new Formatter(System.out));
Turtle terry = new Turtle("Terry",
new Formatter(outAlias));
tommy.move(0,0);
terry.move(4,8);
tommy.move(3,4);
terry.move(2,5);
tommy.move(3,3);
terry.move(3,3);
}
}
Что значит «время вызова метода»? –
Как один из ppl предложил это время CPUT. Я задавался вопросом, есть ли какой-либо встроенный Java-метод. Не ищу ничего сложного, например, профилировщика, а скорее того, что я могу использовать ad hoc в своем коде. Что-то вроде этого: long startTime = System.currentTimeMillis(); tommy.move (0,0); long endTime = System.currentTimeMillis(); System.out.println («Это заняло» + (endTime - startTime) + «миллисекунды»); // но есть ли способ сделать это в одной строке с некоторым методом Java? – aretai
@aretal Ваш пример измеряет истекшее (настенное) время, а не время процессора. По-видимому, это сложно сделать в одной строке, поскольку вам нужно по крайней мере отметить линии, где часы должны начинаться и останавливаться как-то. Аспекты могут дать вам компактное решение, но, вероятно, слишком сложно перекопать AOP, если вы хотите только измерить время. –