-1

我试图通过获取连接、准备语句和执行查询来比较 2 个查询的性能。捕获使用System.currentTimeMillis()before 和 after所花费的时间executeQuery()

具有讽刺意味的是,无论查询是什么,花费的时间总是相同的。(忽略第一次执行)

有人可以告诉我,如何获得查询执行的正确时间吗?

代码片段:

Connection conn = DriverManager.getConnection(url,"721junits","721junits");
Statement stmt = conn.createStatement();
ResultSet rs;
long startTime = System.currentTimeMillis();
rs = stmt.executeQuery(sql);
long endTime = System.currentTimeMillis();
conn.close();

System.out.println("Total time taken : "+ (endTime - startTime));
4

1 回答 1

0

你应该使用 system.nanoTime()

Connection conn = DriverManager.getConnection(url,"721junits","721junits");
Statement stmt = conn.createStatement();
ResultSet rs;
long startTime = System.nanoTime();
rs = stmt.executeQuery(sql);
long endTime = System.nanoTime();
conn.close();

System.out.println("Total time taken : "+ (endTime - startTime));

阅读此答案以获取更多信息

于 2016-03-21T18:04:06.077 回答