jjzjj

performance

全部标签

javascript - 通过事件发射器进行 Angular 2 变化检测会消耗大量 CPU 时间

我注意到我的Angular2应用程序在使用一段时间后变得非常缓慢。我分析了CPU时间,发现正在进行大量更改检测执行。页面加载后的CPU配置文件......与使用该页面一段时间后的CPU配置文件相比。我在不同的服务中使用了很多EventEmitter来在很多组件之间进行通信。经过一段时间的测试,似乎窗口滚动事件的发射器造成了很大一部分重负载。使用页面一段时间后的CPU配置文件没有发出滚动事件:这里是服务的实现:@Injectable()exportclassWindowService{@Output()scrolled$:EventEmitter=newEventEmitter();pr

javascript - 为什么这段 JavaScript 代码经过 Node.js 优化后运行速度变慢了

我正在为ICPC创建一个解决方案使用JavaScript和Node.js的问题当我遇到一个有趣的问题时:在某些情况下,我的程序在同一数据集上的运行速度会慢两倍。我精简了它,直到我得到这个演示行为的最小示例:functionsolve(arr){consttotal=arr.reduce((a,c)=>a+c,0);constcount=arr.length;for(leti=0;i这是使用Nodev10.15.1运行node--trace-optcode.js的输出:[marking0x005062b82521foroptimizedrecompilation,reason:small

javascript - 分析 jQuery 应用程序

我最近在一个应用程序上遇到了一个响应缓慢的脚本错误,我觉得有必要分析该应用程序以确定我需要改进的地方。我想要一个长期修复,而不是一个骇人听闻的修复。我尝试了FirebugProfiler,但由于该应用程序使用了大量jQuery,所以我收到了很多关于匿名调用的报告,这在我的意料之中。我还在网上找到了一些关于JohnResig创建的分析器的报告,但我找到的链接都失效了。所以我的问题是:分析jQuery应用程序的最佳方法是什么?是否有任何开源专用工具/脚本来实现此目的? 最佳答案 所以在深入研究之后,我发现了JohnResig给出的另一个

javascript - 自 Spectre 和 Meltdown 以来如何在 JavaScript 中获得微秒计时

情况在编写高性能JavaScript代码时,Chrome等提供的标准分析工具并不总是足够的。它们似乎只提供功能级别的粒度,向下钻取并找到我需要的信息可能非常耗时。在.NET中,StopWatch类提供了我所需要的:任意代码片段的亚微秒分辨率计时。对于JavaScriptperformance.now()曾经是衡量性能的一个很好的方法,但是为了应对Spectre和Meltdown,所有主流浏览器都将分辨率降低到甚至不到一毫秒。在performance.now()上引用MDN:Thetimestampisnotactuallyhigh-resolution.Tomitigatesecuri

javascript - 向下滑动时反转 slider

我关注了thisarticle用于垂直滑动卡片slider。这个问题有两个部分。1。我不明白如何在向下滑动时反转slider的方向?这是相关的codepen-https://codepen.io/bmarcelino/pen/vRYPXV更新卡片的相关函数functionupdateUi(){requestAnimationFrame(function(){elTrans=0;varelZindex=5;varelScale=1;varelOpac=1;varelTransTop=items;varelTransInc=elementsMargin;for(i=currentPosit

javascript - RequestAnimationFrame定期加快/降低速度

据我了解,requestAnimationFrame的运行速度应尽可能接近浏览器的帧速率(约60fps)。为了确保确实发生这种情况,我一直在记录每个requestAnimationFrame调用的时间戳,如下所示:functionanimate(now){console.log(now);window.requestAnimationFrame(animate);}window.requestAnimationFrame(animate);Console.log数据显示,调用始终相距约0.016674毫秒,因此表明帧速率约为≈60fps(准确地说是59.9736116108912fps

javascript - Array.prototype 与 [] perf

我还没有真正有机会研究的快速问题。在调用/应用类型的上下文中使用时,哪个性能更高:Array.prototypevs[]?例如:functiontest1(){returnArray.prototype.splice.apply(arguments,[1,2]);}test1([1,2,3,4,5,6,7,8,9]);functiontest2(){return[].splice.apply(arguments,[1,2]);}test1([1,2,3,4,5,6,7,8,9]);我的想法:我会假设Array.prototype方式性能更高,因为原型(prototype)函数可以重用并

javascript - 发现 JavaScript CDN 命中率

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion是否有关于各种JavaScriptCDN的命中率的可用数据?这将有助于决定使用哪个CDN。例如,假设我的应用需要jQuery。了解Google、MS、CloudFlare等的CDN中的哪个jQuery副本可能被缓存将对性能很有用。(预计

javascript - WebWorkers 的执行似乎比主线程慢得多

我一直致力于优化一些长时间运行的JavaScript,并尝试实现WebWorkers。我有一组独立的任务要计算。在我的初始测试中,有80个任务,在主线程上用了250毫秒完成。我认为我可以将任务分配给一些网络worker,并将时间缩短到50毫秒左右。我的数据是嵌套多个类型数组的几何数据结构。我有将所有数据提取到JSON+ArrayBuffer对象数组的方法,因此我可以将传输的数据传递给WebWorker,而无需复制大数组。我已经测试了数据传输,并确认它按预期工作。传输到WebWorker后,我的类型化数组在主线程中为空。我(目前)预先启动了4个WebWorker,以便在需要完成工作时,W

javascript - 服务器端处理与客户端处理+ ajax?

寻找一些一般性建议和/或想法...我正在创建我认为更像是一个Web应用程序而不是网页的东西,因为我希望它像一个Gmail应用程序,您可以让页面整天保持打开状态,同时将更新“推送”到页面(对于感兴趣的人,我正在使用cometd编程技术)。我以前从未创建过包含如此丰富的ajax和javascript的网页(我现在是jquery的super粉丝)。正因为如此,当我一次又一次地实现一个新功能时,需要在服务器需要知道的UI中进行动态更改,我面临着同样的问题:1)我是否应该使用javascript在客户端上完成所有处理并尽可能少地通过ajax回发要么2)我应该通过ajax向服务器发送请求,让服务器