在android性能测试中,Phonegap vs native

Eli*_*lie 5 javascript java android native cordova

我的最后一年项目存在严重问题.我被告知使用PhoneGap开发移动应用程序以支持多个平台.然后我被告知要比较PhoneGapNative的性能,所以我决定在android上测试它.

我编写了一个示例函数,并测量了用于PhoneGap的JavaScript和用于Native Android的Java实现它的时间.有趣的是,JavaScript函数的完成时间减少了10倍,而且我一直认为Native函数要快得多.

这是我在PhoneGap的JavaScript中的代码:

        var array = new Array();
        var start = new Date().getTime();
            for (var i = 0; i < 1000000; i++) {
                var j = i + Math.random();
                if (j % 2 == 0)
                    j = 1;
                else
                    j = 0;
                array.push(j);
            }
            var end = new Date().getTime();

            var time = end-start;
            var div = document.getElementById('result');

            div.innerHTML = "Result time= " + time;
Run Code Online (Sandbox Code Playgroud)

我在Java for Native中的代码:

            long startTime = System.currentTimeMillis();
            ArrayList<Integer> array = new ArrayList<Integer>();
            for (int i = 0; i < 1000000; i++) {
                Random r = new Random();
                int j = i + r.nextInt();
                if (j % 2 == 0)
                    j = 1;
                else
                    j = 0;
                array.add(j);
            }
            long endTime = System.currentTimeMillis();

            long time = endTime - startTime;
            t1.setTextColor(Color.BLACK);
            t1.setText("Result time= "
                    + Long.toString(time));
Run Code Online (Sandbox Code Playgroud)

第一个的输出是:平均350毫秒

第二个输出是:平均3600ms

我正在测试

三星Galaxy Note 10.1平板电脑.

这是正确的吗?或者我错过了什么并犯了严重的错误?

非常感谢你的帮助.

-------------- --------------更新

放完之后

随机r =新随机()

在循环之外,执行循环所需的新时间是750ms.但是使用Phonegap,速度仍然是原来的两倍,我可以得出结论,对于数字处理,Phonegap在Android上优于Native吗?

小智 1

并非所有随机数生成器的性能都相同。为了公平比较,您最好进行确定性计算。

您的测试还应该包括其他功能,例如测试 GUI 响应时间、网络、数据库访问等。最有趣的是 GUI 响应时间,因为这是大多数应用程序花费大部分时间的地方。所有其他比较就像在代码中寻找微观优化。

请分享您的结果,因为这就是我访问此问题的真正原因。