草庐IT

Performance

全部标签

javascript - DOM Mutation Observers 是否比 DOM Mutation Events 慢?

以下代码利用DOM突变事件DOMNodeInserted检测body的存在元素并包裹它的innerHTML放入wrapper中。functionDOMmanipulation(){if(document.body){document.removeEventListener('DOMNodeInserted',DOMmanipulation);//DOMmanipulationstartdocument.body.innerHTML=''+document.body.innerHTML+'';//DOMmanipulationend}}document.addEventListener(

javascript - 如何编写时间复杂度较低的代码来查找给定数组范围内丢失的元素?

我的函数应该返回给定数组范围内缺失的元素。所以我首先对数组进行排序并检查i和i+1之间的差值是否不等于1,我将返回缺少的元素。//GivenanarrayAsuchthat://A[0]=2//A[1]=3//A[2]=1//A[3]=5//thefunctionshouldreturn4,asitisthemissingelement.functionsolution(A){A.sort((a,b)=>{returnb1){missing=A[i]+1;}}returnmissing;}我确实喜欢上面的,但是如何更有效地编写它呢?? 最佳答案

javascript - JS : Why Is This Slower? 它不应该测试其他 OR 条件但它确实如此?

我刚刚测试了一些东西。我一直认为在OR条件下,一旦计算机/浏览器发现某些东西是真的,它就会返回它并且不会测试其他条件。我围绕这个假设构建了我的代码。但是,我对它进行了计时,看起来长测试花费了x4倍,对此有什么解释吗?注意:已在GoogleChrome控制台中测试。JSPerf:http://jsperf.com/or-condition返回真||1http://jsperf.com/or-condition2var条件=真||1;返回条件;http://jsperf.com/or-condition3if(true||1)returntrue好像比较快编辑:我刚刚发现true之后的条件

javascript - Angular Js 应用程序中的内存问题

我在angularjs应用程序中面临内存泄漏问题。我已经尝试了所有可能的解决方案,如配置文件工具、时间线和其他一些与angularjs相关的工具。我的工作到现在-配置文件工具在分析工具中,JS堆不断增加,但找不到原因。时间轴显示有内存泄漏的可能,但我仍然不知道如何调试和修复它。任务管理器Itkeeponincreasingthememorysize.Sometimeitisgettinggarbagecollectedbutnotsignificantly.请让我知道如何调试并找出可能的问题所在。如果您遇到同样的问题,请分享您的经验。 最佳答案

javascript - JSON.stringify 对于大对象来说非常慢

我在javascript中有一个非常大的对象(大约10MB)。当我对它进行字符串化时,它需要很长时间,所以我将它发送到后端并将其解析为一个对象(实际上是带有数组的嵌套对象),这也需要很长时间,但这不是我们在这个问题中的问题。问题:我怎样才能使JSON.stringify更快,任何想法或替代方案,我需要一个javaScript解决方案,我可以使用的库或这里的想法。我尝试过的我在谷歌上搜索了很多,看起来没有比JSON.stringify更好的性能了,或者我的谷歌搜索技能生疏了!结果我接受任何可能解决我在请求中长时间保存(发送到后端)的建议(我知道它的大请求)。问题代码示例(问题详情)Req

javascript - 事件委托(delegate)需要多少元素才能变得有值(value)?

阅读另一个关于jQuery性能的StackOverflow问题,我开始思考什么时候值得使用事件委托(delegate)而不是单独绑定(bind)到元素。我主要考虑的是jQuery,但我认为它可能适用于一般的Javascript。事件委托(delegate)有两个主要目的:允许处理程序处理尚未创建/插入到DOM中的元素。将一个函数绑定(bind)到一个共同的祖先元素而不是绑定(bind)到多个兄弟元素我的问题是关于其中的第二个。一般的答案可能是“这取决于具体情况”,但我想知道是否有经验法则或基准测试方法来对此进行测试。因此,问题是:在事件委托(delegate)的性能优势超过性能成本之前

javascript - 为什么单独定义 JS 原型(prototype)函数比在字典中更快?

这似乎是一个特别晦涩的问题,但是我正试图从整体上提高我在Javascript语言中的基础(更具体地说是它的最佳和最有效的实践)。在http://jsperf.com/中测试理论时我得出了一些奇怪的结果:假设我们有两个“相同”的原型(prototype),定义如下:对象1varObject1=function(){}Object1.prototype.defaults={radius:400,up:1}Object1.prototype.centerOffset=function(){returnthis.defaults.radius*this.defaults.up;}对象2varO

Javascript 如何创建一个无分配动画循环来避免垃圾收集器?

我正在尝试构建流畅的60fps动画浏览器javascript循环。我注意到垃圾收集器启动并向动画帧添加可变的非零时间。我首先跟踪代码中的分配,然后将循环自身隔离开来。我正在使用requestAnimationFrame并发现在所谓的“空”循环中它仍然会导致每次迭代分配并触发垃圾收集器。令人沮丧的是,这似乎也发生在其他循环机制setInterval和setTimeout中。下面我整理了一些jsfiddles和屏幕截图来演示示例“空循环”。所有样本均来自约5秒的时间线。此时,我正在寻找最小化垃圾回收的最佳解决方案。从下面的示例来看,requestAnimationFrame似乎是这方面最差

javascript - 什么是 replaceAll 性能 secret ? [HTML 转义]

我花了一些时间寻找转义html字符串的最佳方法,并找到了一些相关讨论:discussion1discussion2.它引导我到replaceAll功能。然后我做了性能测试并试图找到实现类似速度但没有成功的解决方案:(这是我的决赛testcaseset.我在网上找到它并尝试扩展(底部有4个案例),但仍然无法达到replaceAll()性能。是什么secret使replaceAll()解决方案如此快速?您好!代码片段:String.prototype.replaceAll=function(str1,str2,ignore){returnthis.replace(newRegExp(str

javascript - Chrome 时间轴缓冲区使用情况

我正在尝试优化网站的动画。我正在使用Chrome开发工具(网络/时间线/配置文件)获取一些统计数据,并发现当我跟踪时间线时,使用率总是在很短的时间内缓冲到100%。我在stackoverflow上进行了测试,缓冲区的使用情况不同。Myquestionsare:Whatexactlyis"bufferusage"?ShouldIbeworriedaboutit,andif"yes"-howtoimproveit?任何帮助将不胜感激:)附注抱歉我的英语不好 最佳答案 打开时间线将事件记录到缓冲区中。当缓冲区已满时,Chrome会尝试有选