这是一个准确的性能测试吗?

Kyl*_*yle 2 java performance

我正在尝试测试switch语句是否比条件语句执行得更快.唯一的问题是时间数量而不是实际更快的性能.我可以做些什么来测试性能而不是简单的数量竞赛测试?

class Statements {
    public static void main(String args[]) {
        int x = 0, y = 0, x1 = 0, y1 = 0;
        double startTime = System.currentTimeMillis();
        do {
            switch (x) {
                case 1:
                    x--;
                    y++;
                    break;
                default:
                    x++;
                    break;
            }
        } while (y < 1000000000);  //5.718, 6.736, 6.124
        double endTime = System.currentTimeMillis();
        System.out.println((endTime - startTime) / 1000 + " seconds");
           double startTime1 = System.currentTimeMillis();
        do {
            if (x1 < 1) {
                y1++;
                x1++;
            } else {
                x1--;
            }
        } while (y1 < 1000000000);
        double endTime1 = System.currentTimeMillis();
        System.out.println((endTime1 - startTime1) / 1000 + " seconds");
    }
}
Run Code Online (Sandbox Code Playgroud)

Joa*_*uer 6

不,这不对.使用微基准测试可以做很多很多事情,特别是在Java中.

Stackoverflow问题涉及最重要的问题.