快我需要運行WebKit的這段代碼,這是一個混合的應用程序的Android遊戲的一部分:爲什麼Firefox的運行這段代碼10X除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 vs 2.5-3毫秒),我可以[重現](https://jsbin.com/nexocopuka/1/edit?js,console)這個。有趣。 – Cerbrus
FF並不忙於像Chrome那樣收集元數據? – Teemu
你想要一個關於JavaScript引擎內部的技術說明,或者只是修復你的代碼? –