成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

For與while時(shí)間的對(duì)比

lcodecorex / 1918人閱讀

摘要:結(jié)果分析雖然我沒(méi)有代碼,但是我猜測(cè)是循環(huán)執(zhí)行語(yǔ)句的多少差別。如果有更好的原因可以評(píng)論或者發(fā)起后話生命不息,技術(shù)不止。很多時(shí)候我也為了代碼量的減少不理會(huì)運(yùn)行時(shí)間的差異,這次吸收教訓(xùn),之后在實(shí)際開(kāi)發(fā)會(huì)更加注意時(shí)間。

????本文首發(fā)于cartoon的博客
????轉(zhuǎn)載請(qǐng)注明出處:https://cartoonyu.github.io/cartoon-blog/post/java/for%E4%B8%8Ewhile%E6%97%B6%E9%97%B4%E7%9A%84%E5%AF%B9%E6%AF%94/

????相關(guān)文章:JAVA遍歷機(jī)制的性能的比較

前言

索引隨機(jī)訪問(wèn)數(shù)組相信是很常見(jiàn)的操作.

但是昨天在做leetcode的Reverse String時(shí),發(fā)現(xiàn)了很奇怪的現(xiàn)象,具體如下圖

當(dāng)時(shí)我也覺(jué)得不可思議,怎么快了那么多,所以今天復(fù)盤(pán)一下。

正文

注:這篇文章只涉及原始數(shù)組的索引遍歷,不涉及包裝數(shù)據(jù)結(jié)構(gòu)以及foreach

測(cè)試代碼

for

private static void textFor(){
        int[] data=new int[1000];
        int i=0;
        for(;i<1000;i++){
            data[i]=i;
        }
        i=0;
        long start=System.currentTimeMillis();
        for(;i<1000;i++){
            System.out.print(data[i]+" ");
        }
        long end=System.currentTimeMillis();
        System.out.println();
        System.out.println("for use:"+(end-start)+"ms");
    }

while

private static void textWhile(){
        int[] data=new int[1000];
        int i=0;
        for(;i<1000;i++){
            data[i]=i;
        }
        i=0;
        long start=System.currentTimeMillis();
        while(i<1000){
            System.out.print(data[i++]+" ");
        }
        long end=System.currentTimeMillis();
        System.out.println();
        System.out.println("while use:"+(end-start)+"ms");
    }
結(jié)果
for use:35ms
while use:15ms

for use:14ms
while use:6ms

for use:14ms
while use:8ms

for use:20ms
while use:5ms

所用時(shí)間可能不一樣,但是大概比例應(yīng)該跟我的差不多

有點(diǎn)意外的是,while比f(wàn)or竟然要少一倍(大概)的時(shí)間,顛覆了我之前的認(rèn)知。

結(jié)果分析

雖然我沒(méi)有debug代碼,但是我猜測(cè)是循環(huán)執(zhí)行語(yǔ)句的多少差別。

for中,執(zhí)行順序是

判斷循環(huán)變量是否越界

執(zhí)行打印語(yǔ)句

循環(huán)變量自增

while中,執(zhí)行順序是

判斷循環(huán)變量是否越界

執(zhí)行打印語(yǔ)句,循環(huán)變量自增

與for相比,while所執(zhí)行的語(yǔ)句量少掉1/3,所以我覺(jué)得這就是原因。(如果有更好的原因可以評(píng)論或者發(fā)起Issue)

后話

生命不息,技術(shù)不止。

很多時(shí)候我也為了代碼量的減少不理會(huì)運(yùn)行時(shí)間的差異,這次吸收教訓(xùn),之后在實(shí)際開(kāi)發(fā)會(huì)更加注意時(shí)間。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/74982.html

相關(guān)文章

  • Python中單線程、多線程和多進(jìn)程效率對(duì)比實(shí)驗(yàn)

    摘要:中單線程多線程與多進(jìn)程的效率對(duì)比實(shí)驗(yàn)多線程多進(jìn)程中多線程和多進(jìn)程的對(duì)比是運(yùn)行在解釋器中的語(yǔ)言,查找資料知道,中有一個(gè)全局鎖,在使用多進(jìn)程的情況下,不能發(fā)揮多核的優(yōu)勢(shì)。 title: Python中單線程、多線程與多進(jìn)程的效率對(duì)比實(shí)驗(yàn)date: 2016-09-30 07:05:47tags: [多線程,多進(jìn)程,Python]categories: [Python] meta: Pyt...

    niceforbear 評(píng)論0 收藏0
  • JavaScript 之 核心語(yǔ)法 [ 語(yǔ)句 ]

    摘要:語(yǔ)句概況描述在代碼中,使用分號(hào)分隔的可以叫做是語(yǔ)句語(yǔ)句塊在代碼中,大括號(hào)表示語(yǔ)句塊語(yǔ)句塊中可以存在一條或多條語(yǔ)句語(yǔ)句的分類條件語(yǔ)句循環(huán)語(yǔ)句跳轉(zhuǎn)語(yǔ)句條件語(yǔ)句描述通過(guò)對(duì)條件表達(dá)式的計(jì)算結(jié)果進(jìn)行判斷,來(lái)決定要執(zhí)行的語(yǔ)句語(yǔ)句語(yǔ)法條件表達(dá)式語(yǔ)句塊當(dāng) 語(yǔ)句概況 描述 在JavaScript代碼中,使用分號(hào)(;)分隔的可以叫做是語(yǔ)句 語(yǔ)句塊 在JavaScript代碼中,大括號(hào)({})表示語(yǔ)句塊 ...

    stormjun 評(píng)論0 收藏0
  • 數(shù)組常見(jiàn)遍歷循環(huán)方法、數(shù)組循環(huán)遍歷效率對(duì)比

    摘要:場(chǎng)景檢查數(shù)組中是否含有某個(gè)東西和是對(duì)立的案例案例是否包含為對(duì)象循環(huán)遍歷效率對(duì)比參考參考原生實(shí)現(xiàn)等方法其他參考 1 遍歷數(shù)組的方法 1-1、for / while 最普通的循環(huán) 效率最高 兼容ie6tips:for循環(huán)更適用于循環(huán)的開(kāi)始和結(jié)束已知,循環(huán)次數(shù)固定的場(chǎng)合;while循環(huán)更適合于條件不確定的場(chǎng)合 1-2、for in 兼容ie6,效率最差(效率可看最下面的對(duì)比) for in...

    xfee 評(píng)論0 收藏0
  • 如何對(duì)前端圖片主題色進(jìn)行提取?這篇文章詳細(xì)告訴你

    摘要:由此,我嘗試著利用在前端進(jìn)行圖片主題色的提取。一主題色算法目前比較常用的主題色提取算法有最小差值法中位切分法八叉樹(shù)算法聚類色彩建模法等。 本文由云+社區(qū)發(fā)表 圖片主題色在圖片所占比例較大的頁(yè)面中,能夠配合圖片起到很好視覺(jué)效果,給人一種和諧、一致的感覺(jué)。同時(shí)也可用在圖像分類,搜索識(shí)別等方面。通常主題色的提取都是在后端完成的,前端將需要處理的圖片以鏈接或id的形式提供給后端,后端通過(guò)運(yùn)行相...

    jkyin 評(píng)論0 收藏0
  • 如何對(duì)前端圖片主題色進(jìn)行提?。窟@篇文章詳細(xì)告訴你

    摘要:由此,我嘗試著利用在前端進(jìn)行圖片主題色的提取。一主題色算法目前比較常用的主題色提取算法有最小差值法中位切分法八叉樹(shù)算法聚類色彩建模法等。 本文由云+社區(qū)發(fā)表 圖片主題色在圖片所占比例較大的頁(yè)面中,能夠配合圖片起到很好視覺(jué)效果,給人一種和諧、一致的感覺(jué)。同時(shí)也可用在圖像分類,搜索識(shí)別等方面。通常主題色的提取都是在后端完成的,前端將需要處理的圖片以鏈接或id的形式提供給后端,后端通過(guò)運(yùn)行相...

    Neilyo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<