Java秒表法

Java Stopwatch method

我有这个脚本 运行 通过一堆查询并将结果和 运行 时间写入 txt 文件。

这适用于小数据集,但对于较大的较长查询,我得到很多

这个秒表已经 运行 宁。 条消息。

这里是相关代码

Stopwatch timer = Stopwatch.createUnstarted();


    for(String query: qrys) {
        try {
            timer.start();
            resQryES = methodforQrys(url, query);   // query result is saved in the iterable Map resQryES
            timer.stop();

            out.println("Query: " + query);
            out.println("Query execution time: " + timer);
            out.println("Query Results : " + resQryES);


        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }

    }


    out.close();

我想这可能是因为查询是并行执行的, 所以秒表仍然是 运行ning - 所以它适用于较小的数据集,因为查询速度非常快,它不会 运行 任何并行。

我是否应该在使用索引的地方尝试使用不同的循环类型,然后创建 一个匹配的 map/array 定时器值,所以 none 混淆了......

如前所述,评论也是如此。只需将这行代码放在您的 for 循环中,这样它就会在每次迭代时重置。

Stopwatch timer = Stopwatch.createUnstarted();

您的代码应如下所示:

for(String query: qrys) {
    Stopwatch timer = Stopwatch.createUnstarted();
    try {
        timer.start();
        resQryES = methodforQrys(url, query);   // query result is saved in the iterable Map resQryES
        timer.stop();

        out.println("Query: " + query);
        out.println("Query execution time: " + timer);
        out.println("Query Results : " + resQryES);


    } catch (Exception ex) {
        System.out.println(ex.getMessage());
    }

}


out.close();