代码之家  ›  专栏  ›  技术社区  ›  DontPanic

简单循环执行时间的巨大差异:为什么?

  •  1
  • DontPanic  · 技术社区  · 7 年前

    我注意到,即使是在两个相似但不同的设备(即三星Galaxy S4和S7)上进行简单循环,执行时间也存在巨大差异。在S7上,以下测试需要约5毫秒,在S4上需要约250毫秒,相差50倍。我肯定S7比S4快,但是50倍???

    我试过Android探查器(CPU、内存),但没有看到任何危险信号。S7应用程序的CPU利用率约为10%,S4应用程序的CPU利用率约为25%。

    下面的代码是一个 极大地

        //@ Test Timing
        public static void timingTest()
        {
            int i,count=0;
            long t1,t2;
            String TAG="MYAPP";
    
            t1 = System.currentTimeMillis();
            for( i=0; i<4000000; i++ ) {        // get start time
                count++;                        // just bump count
            }
            t2 = System.currentTimeMillis();    // get stop time
    
            String msg=String.format( "ELAPSED = %8.3f sec.", 0.001*(t2-t1) );
            Log.i( TAG, msg );                  // announce elapsed time
        }
    

    我认为这可能是优化方面的差异,但这并没有造成任何相对的影响 真实的

    我已经克服这个问题一个星期了,没有任何新的见解。
    有人知道这件事还是我运气不好?

    2 回复  |  直到 7 年前
        1
  •  0
  •   Martin Zeitler    7 年前

    事实上,这是一个 Exynos 5 Snapdragon 820 Exynos 8 Q & A ,这是比较 C & Java ARM & x86 . 上的操作系统 S4 可能是用错误的标志编译的;并非完全错误,但并非完全相同 S7 操作系统。

    您还可以使用 AnTuTu ……比分大约是五分之一。

    我猜是这样 可能有 ...

        2
  •  0
  •   DontPanic    7 年前

    事实证明这只是一个 完美地 -慢慢来。天啊,那是一周的浪费时间,我再也回不来了。