Я пытаюсь измерить производительность нескольких кроссплатформенных решений, среди которых: 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 раза медленнее!Я не эксперт по тестированию производительности, но разработанный мной тест должен быть хотя бы дистанционно точным ...
Спасибо за любые советы, которые вы можете мне дать.