tôi cần phải chạy mã này trên WebKit, đó là một phần của một ứng dụng lai cho android:tại sao Firefox chạy mã này 10x nhanh hơn so với 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;
}
}
Ở đây có đầy đủ code để kiểm tra: https://jsbin.com/boduputebu/edit?js,console
Tôi nghĩ V8 nhanh hơn Firefox (SpiderMonkey), nhưng ở đây cho mã đơn giản này SpiderMonkey nhanh hơn đáng kể. Trên máy tính xách tay của tôi hiệu suất là:
Chrome: 30 ms
Node: 30 ms
Firefox: 3 ms
Java (same code with Java): 3 ms
Bạn có ý tưởng thay đổi mã để làm cho nó nhanh trên V8 không. Với hiệu suất hiện tại, tôi đã phải viết nó ở phía Java, nhưng nó không phải là một lựa chọn tốt cho tôi. Hoặc nếu không có cách nào để làm cho nó nhanh hơn bạn có biết tại sao V8 chạy mã này rất chậm?
Version:
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"
Mặc dù sự khác biệt nhỏ hơn (8-9 so với 2,5-3 mili giây), tôi có thể [sao chép] (https://jsbin.com/nexocopuka/1/edit?js,console) điều này. Hấp dẫn. – Cerbrus
FF không bận rộn để thu thập dữ liệu meta của bạn nhiều như Chrome? – Teemu
Bạn có muốn giải thích kỹ thuật về nội bộ động cơ JavaScript hay chỉ sửa chữa mã của bạn? –