为了账号安全,请及时绑定邮箱和手机立即绑定

验证处理时间的有效方法

验证处理时间的有效方法

一只名叫tom的猫 2023-04-26 10:43:57
我正在尝试找到使用不同块用法的最佳性能方式/方法。我正在运行下面的回文程序,用 3 种不同的方式测量每个程序的执行时间。但我总是得到'0'作为输出。我的代码有什么问题。请帮我。主要的    long startTime, endTime, duration;    startTime = Instant.now().toEpochMilli();    System.out.println(palindromeUsingStringBuilderReverse(str));    endTime = Instant.now().toEpochMilli();    duration = (endTime - startTime);    System.out.println("Duration for using string builder : " + duration);    startTime = Instant.now().toEpochMilli();    System.out.println(palindromeUsingForLoop(str));    endTime = Instant.now().toEpochMilli();    duration = (endTime - startTime);    System.out.println("Duration for using for loop : " + duration);    startTime = Instant.now().toEpochMilli();    System.out.println(palindromeUsingWhile(str));    endTime = Instant.now().toEpochMilli();    duration = (endTime - startTime);    System.out.println("Duration for using while loop : " + duration);回文使用 StringBuilderReverseStringBuilder bdr = new StringBuilder(str);        if (str.equalsIgnoreCase(bdr.reverse().toString())) {            return "The given string is a Palindrome.";        } else {            return "This is not a Palindrome string.";        }回文使用ForLoopString revStr = "";for (int i=str.length()-1; i>=0; i--) {                revStr = revStr + str.charAt(i);                }    if (str.equalsIgnoreCase(revStr)) {                return "The given string is a Palindrome.";            } else {                return "This is not a Palindrome string.";            }回文UsingWhile    int i = 0, j = str.length() - 1;    while (i < str.length()) {        if (str.charAt(i) != str.charAt(j)) {            return "This is not a Palindrome string.";        } else {            i++;            j--;        }    }    return "The given string is a Palindrome.";
查看完整描述

1 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

您的时间单位太大,无法捕获所花费的时间。您应该采用更小的时间单位,例如纳秒,并尝试多次运行相同的检查,例如 10000 次。


带有纳秒的示例代码。


        long startTime, endTime, duration;

        startTime = System.nanoTime();

        System.out.println(palindromeUsingStringBuilderReverse(str));

        endTime = System.nanoTime();

        duration = endTime - startTime;

        System.out.println("Duration for using string builder : " + duration);


        startTime = System.nanoTime();

        System.out.println(palindromeUsingForLoop(str));

        endTime = System.nanoTime();

        duration = endTime - startTime;

        System.out.println("Duration for using for loop : " + duration);


        startTime = System.nanoTime();

        System.out.println(palindromeUsingWhile(str));

        endTime = System.nanoTime();

        duration = endTime - startTime;

        System.out.println("Duration for using while loop : " + duration);


查看完整回答
反对 回复 2023-04-26
  • 1 回答
  • 0 关注
  • 90 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信