亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

驗證處理時間的有效方法

驗證處理時間的有效方法

一只名叫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 關注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號