草庐IT

javascript - 为什么 array.map(String.fromCharCode) 这么慢?

当我读到GuidovanRossum的文章AnOptimizationAnecdote时,它开始了。.决定在JavaScript中尝试同样的事情,我计时如下:numbers.map(function(x){returnString.fromCharCode(x);});这已经相当快了,但为什么不完全消除匿名函数并将String.fromCharCode直接传递给map():numbers.map(String.fromCharCode);我对它计时并且......这比以前的版本慢了~100倍。怎么会?不知何故,将此native函数直接传递给Array.map()比将其包装在另一个函数中

javascript - 为什么原型(prototype)函数比默认声明的函数慢 40 倍?

我玩过jsperf.com,发现原型(prototype)函数比“默认”声明的函数慢40倍。String.prototype.contains=function(s){return!!~this.indexOf(s)}=220Kops/s对比functionisContains(str,s){return!!~str.indexOf(s)}=8.5KK操作/秒Here'sajsperftestcase附言我知道原型(prototype)修改不是最好的情况,可以命名为“猴子修补”:) 最佳答案 我认为它很慢,因为字符串基元每次调用一个

javascript - 为什么 let 在 for 循环之后比在 for 循环之前慢得多?

在node.jsv6.0.0中functiontestlet(){ leta=0; for(vari=0;ilet在代码中的位置怎么会造成这么大的性能差异呢? 最佳答案 我会根据有根据的猜测说temporaldeadzone是罪魁祸首。那个循环,似乎就是你的微基准测试的内容,是eatenbytheoptimiserforbreakfast作为VyacheslavEgorovlikestoputit在他的谈话中。即使不是这样,引擎也会将一个变量递增一百万次,这两个函数将花费相同的时间。不同的是创建变量a的时间。在您的第一个片段中,它位

javascript - Knockout.js foreach 非常慢

我正在尝试使用模板创建一个简单的标记。像这样的东西:它工作得很好,但是如果我需要用这个模板渲染很多div,它会非常慢。创建每个div后的knockout将其添加到文档中。但是,如果我这样做:el=document.createElement("div");applyBindings(myModel,el);(div.list).innerHTML=el.innerHTML它工作得更快但不方便。也许Knockout有一些内置功能可以创建一组元素,然后将这组元素添加到文档中? 最佳答案 听起来KO正在使用您添加的每个DIV来操纵DOM。

javascript - ExtJS 网格速度慢,有 3000 多条记录

我正在使用ExtJSGrid,它在处理3000多条记录时变得相当慢。排序大约需要4秒。我在考虑是否可以在我的表格中使用分页。但是在阅读了文档之后,我仍然有点不确定分页在extjs中是如何工作的。这是否会在您每次翻页时从服务器拉取数据?我宁愿不是这样。我更希望将3000条记录保存在浏览器中,然后呈现的只是这些行的一部分。此外,我正在使用Extjs4.2.1版。如果我升级到版本5,我会得到一些性能改进吗? 最佳答案 尝试使用缓冲渲染器插件,3000多条记录并没有那么多,有了插件。Sencha文档的片段:vargrid=Ext.creat

javascript - 为什么 EventMachine 比 Node 慢那么多?

至少在我的具体情况下是这样。此处不作一般性陈述。我有这个用Node.js编写的网络爬虫。我更愿意改用Ruby,所以我在EventMachine中重新编写了它。由于原始版本是用CoffeeScript编写的,所以它实际上非常简单,而且代码非常相似,除了在EventMachine中我实际上可以捕获异常并从异常中恢复(因为我使用的是纤程)。问题在于,在Node.js代码上运行不到20秒的测试在EventMachine上需要长达5分钟甚至超过5分钟。当我观察连接计数时,它们看起来几乎没有并行运行(它们排队成百个,然后非常缓慢地下降),尽管日志记录显示代码点是并行。我知道如果没有代码,你无法真正

javascript - THREE.js 光线转换对单个> 500k 多边形(面)对象非常慢,线与地球相交

在我的项目中,我有一个玩家在地球上行走。地球不仅仅是一个球体,它还有山脉和山谷,所以我需要改变玩家的z位置。为此,我从玩家的位置向单个物体(地球)转换一条光线,我得到它们相交的点并相应地改变玩家的位置。我只在玩家移动时进行光线转换,而不是在每一帧上。对于一个复杂的对象,它需要永远。具有~1m多边形(面)(1024x512分段球体)的对象需要~200ms。光线转换是否针对每张脸?是否有一种传统的快速方法可以在三中实现这一点,比如一些加速结构(八叉树?bvh?——老实说,从我的谷歌搜索中我似乎没有发现三中包含这样的东西)或其他一些想法-开箱即用(无光线转换)方法?vardir=g_Game

javascript - $.post jQuery 更快或更慢取决于浏览器?

我正在尝试提高我的jQuery性能,我注意到它在Chrome中的运行速度比在其他浏览器中快。当它只是对PHP文件的AJAX调用时有意义吗?为了测试它,我在click事件上这样做:varstartTime=newDate();$.post("http://"+document.domain+"action.json",{data:data},function(dat){console.log('ending:',(newDate()-startTime)/1000);}});以秒为单位的结果是:Chrome25:0.148Firefox19.0.2:0.212InternetExplor

javascript - jQuery:get() 比 load() 慢

显而易见的问题-为什么?我需要从外部页表单元格中获取,然后将其注入(inject)当前页。使用了复杂的选择器。这是.load():$('#check').load('https://bla-bla-bla.small:contains(Something)+.small:lt(1)');这是.get():functionshowGetResult(){varresult=null;varscriptUrl="https://bla-bla-bla";$.get(scriptUrl,function(data){result=$(".small:contains(Something)",

javascript - 为什么javascript中的递归这么慢?

我刚刚在jsperf上运行了这个基准测试:https://jsperf.com/mapping1我试图查看使用递归的map是否可以击败Array.prototypemap函数。我的丢了可怕的。谁能解释一下为什么?map=function(f,xs){if(xs.length===0){return[]}return[f(head(xs))].concat(map(f,tail(xs)))}//head()andtail()doexactlywhatyouwouldexpect.Iwishtherewasawaytoprogrammaticallyforklistsinjs...