为什么FireFox插件中的JavaScript比FireFox中加载的网页中的JavaScript慢?
我想知道为什么相同的JavaScript代码在FireFox插件(使用插件SDK)中要比直接在FireFox加载的网页中运行慢得多 例如,此代码:为什么FireFox插件中的JavaScript比FireFox中加载的网页中的JavaScript慢?,javascript,performance,firefox,firefox-addon,Javascript,Performance,Firefox,Firefox Addon,我想知道为什么相同的JavaScript代码在FireFox插件(使用插件SDK)中要比直接在FireFox加载的网页中运行慢得多 例如,此代码: function isPrime(number) { var i, prime = true; for(i = 2 ; i < number ; ++i) { if(number % i === 0) { prime = false; } }
function isPrime(number) {
var i,
prime = true;
for(i = 2 ; i < number ; ++i) {
if(number % i === 0) {
prime = false;
}
}
return prime;
}
function sumFirstPrimeNumbers(x) {
var i,
sum = 0;
for(i = 1 ; i <= x ; ++i) {
if(isPrime(i)) {
sum += i;
}
}
return sum;
}
var sum = sumFirstPrimeNumbers(15000);
console.log(sum);
函数isPrime(数字){
var i,
prime=true;
对于(i=2;iabout:config
页面访问)控制javascript优化:javascript.options.methodjit.chrome
用于特权代码(扩展)和javascript.options.methodjit.content
用于不受信任的代码(网页)
Firefox的某些版本出厂时默认禁用了前者
检查
javascript.options.methodjit.chrome
是否设置为true
当前版本的firefox中也存在一个bug,阻止在插件中完全JIT javascript,有关详细信息,请参阅代码是什么时候运行的?因为浏览器在启动时负载很重?我可能在告诉一个愚蠢的瘦用户g、 当然有人会反驳我,但网页是否可能“缓存”isPrime
的结果,而加载项没有?这段代码是在浏览器启动时加载的。但是我尝试在点击按钮时运行这段代码,速度很慢。我不知道是否有缓存。这个答案需要更多细节。请向OP解释这个pref选项的作用,如何找到它,等等。否则,就目前而言,答案是正确的应该是评论而不是回答。这是真的。这意味着什么?@antoyo基本点是JavaScript JIT(或者至少是其中一个;Firefox中有几个在不同点触发)可以在扩展和网页中单独禁用。因此,网页中的代码可能正在进行jit,而扩展中的代码可能没有。@antoyo因为已经启用了chrome的jit,所以您可以做的不多。我有根据的猜测是,某些优化无论如何都不适用于chrome。也许这是错误的这是一个尝试网络工作者的好主意。