Chrome性能分析与长系统自我时间

czfnxgou  于 2023-05-11  发布在  Go
关注(0)|答案(1)|浏览(161)

我正在分析网页性能。网页包含一个“pointermove”事件的处理程序以更改“transform:translate(x,y)”(总共有大约10个DOM后代)。
在Chrome浏览器中,在特定条件下,“pointermove”并没有以非常高性能的方式处理-在“pointermove”期间,会发生延迟和变换属性的“不连续”更改。
相反,在Firefox中,一切都是高性能的(在这些特定条件下)。
在Chrome的性能分析中,我在“pointermove”期间检测到长“任务”。它说网页JS函数(和渲染)大约需要1毫秒,但“系统(自我)”需要128毫秒。

摘要页签:

任务

  • 总时间:129.76 ms
  • 自身时间:128.19 ms

自下而上标签页:

  • 0.6 ms 37.5%更新层树
  • 0.3 ms 19.9%复合层
  • 0.2 ms 14.8%命中测试
  • 0.2毫秒13.8%重新计算样式

没有解释任务是做什么的,它是什么?什么是“系统(自我)”,为什么花了这么多时间?如何化解这样的“波涛汹涌”行为?
我期望对“pointermove”事件的高性能处理,就像在Firefox中一样。
在Chrome中,“pointermove”是用一些长时间运行的“系统(自)任务”来处理的,这会导致糟糕的处理和不稳定的感觉(延迟)。

Snippet / JSFiddle

code is here ↘

https://jsfiddle.net/ziom1/f8jbyz52/

w7t8yxp5

w7t8yxp51#

我也遇到过类似的问题,我的Notes AngularJS应用程序在textarea中有很大的文本。在性能选项卡中移动光标时,System (self)花费了约600 ms,其余时间为0或1 ms。

我本打算创建一个问题,但发现了这个问题,然后想向Chromium报告一个bug。但后来我检查了Chrome使用了多少内存。我打开了很多标签,里面有很多沉重的应用程序。像多个YouTube链接,MS团队等。和隐藏在组中的页面。我已经打开了任务管理器,并杀死了一些进程/标签,有最多的内存。现在我的应用程序运行良好。
我可能会达到浏览器内存的限制。请注意,我有16 GB,在那个系统上运行Firefox(运行Chrome)不是问题。

相关问题