草庐IT

Performance

全部标签

javascript - 为什么 webAssembly 函数比相同的 JS 函数慢近 300 倍

查找第300行的长度*慢首先,我已阅读WhyismyWebAssemblyfunctionslowerthantheJavaScriptequivalent?的答案但这并没有说明问题,而且我已经投入了大量时间,这很可能是靠墙的黄色东西。我不使用全局变量,我不使用任何内存。我有两个简单的函数,它们可以找到线段的长度,并将它们与普通旧Javascript中的相同内容进行比较。我有4个参数3个本地人,并返回一个浮点数或double数。在Chrome上,Javascript比webAssembly快40倍,在Firefox上,wasm几乎比Javascript慢300倍。jsPref测试用例。

javascript - 是否重新编译了 javascript 中的闭包

假设我们有这段代码(暂时忘掉原型(prototype)):functionA(){varfoo=1;this.method=function(){returnfoo;}}vara=newA();每次运行函数A时,内部函数是否都重新编译?或者这样做更好(以及为什么):functionmethod=function(){returnthis.foo;}functionA(){this.foo=1;this.method=method;}vara=newA();或者javascript引擎是否足够聪明,不会每次都创建一个新的“方法”函数?特别是Google的v8和node.js。此外,欢迎就

javascript - 更干净更快的 JavaScript,用 JavaScript 替换 jQuery

像许多人一样,我通过学习jQuery来学习JavaScript。最近我一直在替换像这样的位:$(this).attr('title')和this.title$(this).attr('id')与this.id$(this).val()与this.value$(this).parent()与this.parentNode$(this).attr('class')与this.className不仅我的代码更简洁,而且技术上速度更快。这种类型的减少是否可以接受和鼓励?我应该在raw纯JavaScript而不是jQuery中做任何其他常见做法吗?这种简化主义是否存在任何潜在的跨浏览器问题?

javascript - 为什么 for-of 循​​环对于小数组比标准 for 循环更快而对于更大数组更慢?

在JavaScript中,我注意到ES6for...of循环的性能与传统的for(start;stop;step)循环有很大不同。基准constn=10000;constarr=Array(n).fill().map((e,i)=>i);//[0,n)console.log('n=',n);letsum1=0;console.time('forleti');for(leti=0;i结果n=10forleti:0.350msforof:0.015ms-----n=100forleti:0.354msforof:0.023ms-----n=1000forleti:0.429msforof:

javascript - window.location.hash 分配在 IE8 中非常慢

我在为XP的IE8中修改位置哈希时遇到问题。只需调用:self.location.hash="whatever"大约需要800ms~1800ms我不知道什么可以减慢速度。我在其他一些网站上检查了相同的说明,并没有那么慢。有什么线索可以让它这么慢吗?很抱歉,我无法提供在线示例。编辑:这是我在IE控制台中得到的,输入:console.log(newDate().getTime());self.location.hash="sfdsd";console.log(newDate().getTime());输出:JOURNAL:1326468325447JOURNAL:1326468327390

javascript - 如何预加载谷歌地图的某些部分?

我正在使用GoogleMapsAPI构建一个网络应用程序,我需要平滑地放大一个区域,所以我使用setTimeout每秒增加缩放级别,但在某些网络不好的地方,map图像加载速度太慢以至于页面很快变成白页....所以我的问题是是否可以预加载Googlemap的某些部分(从3点缩放到16点) 最佳答案 您可以将其预加载到隐藏的div或iframe中。但你应该确保它不违反GoogleMaps/GoogleEarthAPIsTermsofService10.1.3RestrictionsagainstDataExportorCopying.(

javascript - JavaScript 中 + 运算符和 concat() 方法的区别是什么

加号(+)运算符和String.concat()方法给出相同的结果。加号(+)运算符;str1+str2;字符串concat()方法;str1.concat(str2);另外,它写在w3schools中;ButwithJavaScript,methodsandpropertiesarealsoavailabletoprimitivevalues,becauseJavaScripttreatsprimitivevaluesasobjectswhenexecutingmethodsandproperties.那么JS中无论是在基元上还是在String对象上使用哪种方式组合比较好,如果有的话

javascript - 通过字符串或整数更快地访问数字属性?

在JavaScript中,您可以使用整数或字符串获取和设置数组的索引和对象的“数字”属性,并获得相同的结果:vara=[],o={};a[1]="foo";a["1"]=="foo"//truea["2"]="bar";a[2]=="bar"//truea["-3"]="baz";a[-.3e1]=="baz"//trueo[1]="foo";o["1"]=="foo"//trueo["2"]="bar";o[2]=="bar"//trueo["-3"]="baz";o[-.3e1]=="baz"//true虽然字符串和数字是可互操作的——对于获取和设置——哪个更快(对于数组和对象)?

javascript - Uglify-js 不会破坏变量名

尝试为我的js库准备良好的构建环境。根据网络评论UglifyJS似乎是最好的压缩模块之一,在NodeJS下工作。因此,这是缩小代码的最佳推荐方法:varjsp=require("uglify-js").parser;varpro=require("uglify-js").uglify;varorig_code="...JScodehere";varast=jsp.parse(orig_code);//parsecodeandgettheinitialASTast=pro.ast_mangle(ast);//getanewASTwithmanglednamesast=pro.ast_sq

javascript - 评论会影响性能吗?

我说JavaScript代码未编译,甚至JIT也未编译,对吗?如果是这样,是否意味着评论会影响性能,我应该非常小心地放置评论?例如尽可能将函数注释放在函数定义的上方和外部,并且绝对避免将注释放在循环内,如果我想最大化性能?我知道在大多数情况下(至少在非循环情况下),性能的变化可以忽略不计,但我认为这是值得了解和注意的事情,尤其是对于前端/js开发人员。另外,在我最近参加的js评估中提出了一个相关问题。 最佳答案 AmIcorrecttosaythatJavaScriptcodeisn'tcompiled,notevenJIT?没有。