【发布时间】:2012-04-16 07:53:31
【问题描述】:
我正在尝试衡量一些跨平台解决方案的执行性能,其中包括:Titanium 和 PhoneGap。
下面是我的性能测试器的 Titanium 版本的示例,它非常简单,但我只是想感受一下我的代码执行速度有多快:
var looplength;
var start1;
var start2;
var end1;
var end2;
var duration1;
var duration2;
var diff;
var diffpiter;
var power;
var info;
for (power = 0; power < 24; power++) {
looplength = Math.pow(2, power);
start1 = new Date().getTime();
for (iterator = 0; iterator < looplength; iterator++) {a=iterator;b=iterator;}
end1 = new Date().getTime();
start2 = new Date().getTime();
for (iterator = 0; iterator < looplength; iterator++) {a=iterator;}
end2 = new Date().getTime();
duration1 = end1 - start1;
duration2 = end2 - start2;
diff = duration1 - duration2;
diffpiter = diff / looplength;
info={title:'2^' + power + ' ' + diffpiter};
tableView.appendRow(Ti.UI.createTableViewRow(info),{animated:true});
}
PhoneGap 版本是一样的,除了最后两行被替换了
document.write('2^' + power + ' ' + diffpiter + '<br />');
两者都在 iPhone 4S 上执行。我已经多次运行测试,以消除错误。
Titanium 版本每次迭代测量 ~0.0009 毫秒,而 PhoneGap 版本每次迭代测量 ~0.0002 毫秒?
Titanium 应该编译我的 javascript 代码,所以我希望它更快。然而,在这种情况下,它至少慢了 4 倍!我不是性能测试方面的专家,但我设计的测试至少应该是非常准确的......
感谢您给我的任何提示。
【问题讨论】:
-
Titanium 和 PhoneGap 的用例明显不同。做这样的微基准测试完全没有抓住重点。
-
我明白这一点,但我将在应用程序中放入的任何业务逻辑都将在纯 JavaScript 中完成。所以我正在测试在这些情况下运行纯 javascript 的速度。我知道人们会出于不同的原因使用 Titanium 和 PhoneGap,但我试图向自己说明 Titanium 执行速度更快的事实。
标签: iphone ios performance cordova titanium