мне нужно, чтобы запустить этот код на WebKit, это часть гибридного приложения для андроид:почему Firefox работает этот код в 10 раз быстрее, чем Chrome
for(var x = 0; x < width; x++) {
for(var y = 0; y < height; y++) {
var i = (y * width + x) * 3;
var r = data[i];
var g = data[i + 1];
var b = data[i + 2];
var green = is_green(r, g, b);
x_histogram[x] += green;
y_histogram[y] += green;
}
}
Вот полный код для теста: https://jsbin.com/boduputebu/edit?js,console
Я думал, что V8 быстрее Firefox (SpiderMonkey), но здесь для этого простого кода SpiderMonkey значительно быстрее. На моем ноутбуке производительность составляет:
Chrome: 30 ms
Node: 30 ms
Firefox: 3 ms
Java (same code with Java): 3 ms
У вас есть идеи изменить код, чтобы быстро протестировать его на V8. С текущей производительностью я должен был написать ее родной на стороне Java, но это не очень хороший вариант для меня. Или, если нет способа сделать это быстрее, вы знаете, почему V8 работает с этим кодом очень медленнее?
Версия:
Chrome: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36"
FireFox: "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0"
В то время как разница меньше (8-9 против 2,5-3 мс), могу [воспроизвести] (https://jsbin.com/nexocopuka/1/edit?js,console) это. Интересно. – Cerbrus
FF не занят для сбора ваших метаданных так же, как Chrome? – Teemu
Вы хотите получить техническое объяснение о внутренних механизмах JavaScript или просто исправить свой код? –