PhoneGap与Android应用程序之间的执行时间

时间:2015-05-11 11:28:03

标签: java javascript android cordova

我用两种方法编写了两个移动应用程序来测试执行时间。 这两个应用程序只包含一个调用矩阵乘法方法的按钮:

Java方法:

public void matrismult(int[][] a, int[][] b)
{
    int n = a.length;
    int[][] C = new int[n][n];
    for (int i = 0; i < n; i++) {
        for (int k = 0; k < n; k++) {
            for (int j = 0; j < n; j++) {
                C[i][j] += a[i][k] * b[k][j];
            }
        }
    }

}

在java方法中我使用System.currentTimeMillis();测量执行时间,在JavaScript中我使用performance.now();

JavaScript方法:

function myFunction(m1,m2) {

    for (var i = 0; i < m1.length; i++) {
        result[i] = [];
        for (var j = 0; j < m2[0].length; j++) {
            var sum = 0;
            for (var k = 0; k < m1[0].length; k++) {
                sum += m1[i][k] * m2[k][j];
            }
            result[i][j] = sum;
        }
    }
}

当我在10x10矩阵上运行10k次矩阵乘法时,Java方法的执行时间是6500毫秒。当我在PhoneGap应用程序上执行相同操作时,执行时间为139毫秒。

我确定我做的事情非常糟糕,因为感觉Android应用程序不应该那么慢。但我真的不知道什么,有人能指出我正确的方向吗?

编辑:矩阵是相同的

edit2:我如何衡量执行时间

            long starttime = System.currentTimeMillis();
            for (int i = 0; i < 10000; i++)
            dostuff();
            long endtime = System.currentTimeMillis();
            long exec = endtime - starttime; 

0 个答案:

没有答案