草庐IT

Performance

全部标签

javascript - 异常缓慢的 Javascript 循环

在某种程度上,这是我的previousquestion的后续行动.我创建了ajsPerf它比较了多种获取RGB像素值的一维数组的方法varrgb=[R,G,B,R,G,B...]并将它们转换为HTML5Canvas的RGBA值(其中alphachannel始终为255,完全不透明)。varrgba=[R,G,B,255,R,G,B,255...]在我的测试中,我发现我测试的循环之一,标题为“ForLoop”,比其他循环慢得多。在其他循环每秒数亿次完成操作的情况下,它的重量每秒高达86次。该循环可以在上面的jsPerf链接中找到,但这里有一些带有“ForLoop”和“4*unrolled

javascript - 更改属性时延迟渲染 dom 元素

我目前在一次更新大量dom元素的属性时遇到性能问题。似乎每次我更改属性时,dom元素都会重新呈现。无论如何我可以延迟元素的渲染,直到我的所有更新都发生了吗?它在FF3和3.5中似乎比IE7和8慢很多,这与我的预期相反。下面是我正在做的一个例子。vart;for(vari=0;i问题是“tiles”中的项目数最多可以有100个dom元素。这才是性能问题真正体现出来的地方。 最佳答案 同意@Crimson但我认为最好隐藏您要更新的所有元素的父级,如果它们没有独占父级,请尝试创建一个。这样只有两个reflows会发生,一个发生在您隐藏ti

javascript - 三元语句是否比 javascript 中的 if/then/else 语句更快?

我看到了很多:varsomething=(is_something_true())?3:4;在javascript中。这比varsomething;if(is_something_true()){something=3;}else{something=4;}还是为了方便写得简明扼要? 最佳答案 请享受这个——如果差异在统计上是有效的,那么结果(真或假)也很重要——显然这只是机器上影响浏览器性能的其他东西:Hereisthelink两者之间有一个根本的区别,三元语句是表达式而不是控制流。如果有人将它写成三元表达式而不是标准的if/th

javascript - D3js强制布局销毁和重置

基于两个D3示例:力布局(http://bl.ocks.org/mbostock/1095795)和集群力布局(http://bl.ocks.org/mbostock/1748247),我设法构建了一个力布局,其中有几个独立的重力点来控制节点在链接顶部的位置节点。//Setupmapfunctionmap_init(){force=d3.layout.force().nodes(nodes).links(links).size([width,height]).on("tick",tick);svg=d3.select("#map").append("svg").attr("width"

javascript - 在 </head> 标签和 </body> 标签之前包含 Javascript 的优缺点是什么?

编辑:虽然这个问题在(1)、(2)、(3)之前已经被问过和回答过,但答案没有提到在包含时使用异步和/或延迟加载的可能性中的文件。由于GoogleAnalytics新代码使用了这两种方法,我被提示问这个问题。我最近注意到GoogleAnalytics现在建议在标记之前包含它的Javascript片段。他们曾经建议在标记之前包含该代码段。YUIBestPracticesforSpeedingUpYourWebSite建议将脚本尽可能放在页面下方,因为脚本会阻止并行下载:Theproblemcausedbyscriptsisthattheyblockparalleldownloads.The

javascript - "in"运算符或 obj.hasOwnProperty(prop) 的 Big O 表示法的效率是多少

Mozilla的网站清楚地描述了hasOwnProperty()。和in运营商。但是,它没有提供有关其效率的任何实现细节。我怀疑它们会是O(1)(常数时间),但我希望看到任何可能存在的引用或测试。 最佳答案 将我的评论变成答案。hasOwnProperty()应该O(1),因为它是一个键查找,但它是特定于实现的。in肯定会更复杂(尽管应该与hasOwnProperty()相同,如果属性存在于该对象上),因为它沿着原型(prototype)链上升,寻找那个属性(property)。这就是为什么通常建议在使用for(in)遍历对象属性时

javascript - 为什么访问对象属性总是比访问数组项更快?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我对两种方法进行了基准测试:访问数组项varobject=[10,15,20];varx=object[0];vary=object[1];varz=object[2];和访问对象属性varobject={x:10,y:15,z:20};varx=object.x;vary=object.y;varz=object.z;我希望访问数组项的速度更快,因为不涉

javascript - JavaScript 函数对象有多大?

我只是想知道函数对象的开销是多少。在OOP设计模型中,您可以生成大量对象,每个对象都有自己的私有(private)函数,但如果您有10,000多个对象,我认为这些私有(private)函数对象会产生大量开销。我想知道是否存在将这些函数移动到实用程序类或外部管理器以节省这些函数对象占用的内存的情况是否足够有利。 最佳答案 这就是Chrome处理函数的方式,其他引擎可能会做不同的事情。让我们看一下这段代码:varfuncs=[];for(vari=0;ihttp://jsfiddle.net/7LS6B/4/现在,引擎创建了1000个函

javascript - 在 express 中预编译 jade 模板对生产有好处吗

当在生产中使用jade-lang时,我是否会受益于某种形式的预编译所有.jadeView然后在res.render中使用它们的中间件?还是当您执行NODE_ENV=production时会自动发生?我只是在探索有关如何在生产环境中加快jade渲染的选项。 最佳答案 当Jade编译模板时,模板被缓存。在生产环境中如果预热缓存,则不需要预编译模板。即使您不这样做,模板也会在第一次编译后被缓存。我建议您查看Jade的源代码,以更好地理解它的工作原理。exports.render=function(str,options,fn){//...

javascript - 优化巨大的 JSON 响应

我正在开发大数据客户端应用程序。服务器语言是Java。在Frontend中,我使用大量普通的JavaScript,但使用AngularJS作为MVC框架。问题处理大数据分析,一次单个RESTapi响应大约为1.5MB到3MB。处理这些数据以构建DOM是一件痛苦的事情。首先,加载JSON大约需要5到10秒。然后我构建UI(DOM)在构建DOM后,基于用户与数据的交互-我必须使用具有更新值的相同JSON发送/返回服务器。建议,我有哪些选项可以优化页面响应能力“我想到的几件事:一次将JSON分成1000个block,加载DOM后静默引入数据并更新UI。在服务器上对JSON进行GZIP压缩,然