Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 多个ag网格表导致浏览器挂起_Angular_Performance_Google Chrome_Ag Grid_Ag Grid Angular - Fatal编程技术网

Angular 多个ag网格表导致浏览器挂起

Angular 多个ag网格表导致浏览器挂起,angular,performance,google-chrome,ag-grid,ag-grid-angular,Angular,Performance,Google Chrome,Ag Grid,Ag Grid Angular,我在一个仪表板上工作,有多个ag网格表。这些表有自己的数据获取机制(轮询或通过web套接字获取数据)。共有7个表,其中4个依赖于web套接字,其余3个依赖于数据轮询 在接收数据时,我们通常会: 添加/删除数据 细胞闪烁 单元样式(基于接收到的数据) 一些海关支票 当我们得到频繁的更新(比如更新ag网格数据的页面上每分钟500个事件)时,页面会变得无响应,并且开始显示出迟钝,甚至在表内滚动也会变得困难。如果我们打开同一个仪表板的3-4个选项卡,CPU执行率在10分钟内会达到100%,在不活动的选项

我在一个仪表板上工作,有多个ag网格表。这些表有自己的数据获取机制(轮询或通过web套接字获取数据)。共有7个表,其中4个依赖于web套接字,其余3个依赖于数据轮询

在接收数据时,我们通常会:

  • 添加/删除数据
  • 细胞闪烁
  • 单元样式(基于接收到的数据)
  • 一些海关支票
  • 当我们得到频繁的更新(比如更新ag网格数据的页面上每分钟500个事件)时,页面会变得无响应,并且开始显示出迟钝,甚至在表内滚动也会变得困难。如果我们打开同一个仪表板的3-4个选项卡,CPU执行率在10分钟内会达到100%,在不活动的选项卡中可以看到白色的死亡屏幕

    使用“性能”选项卡选中时:

    在最后一幅图像中,可以看到空闲时间非常少,80%是脚本运行时间

    我已经创建了ag电网配置的回购协议,以及我们在收到数据后所做的工作:

    [我已经尝试过的]:

  • web workers的不可变数据源(我的限制是不能使用ag网格函数,如
    gridApi.getRowNode
    来获取web workers中的节点)
  • 任何改进建议或寻找绩效的方向都会有所帮助

    谢谢

    附言:

  • 上面的repo代码不是可执行的(因为我们有一些服务器配置),但足以让您了解如何设置以及如何执行
  • 此外,我们还有一个ag网格小部件组件,它通常在带有服务器配置的页面上
    ng repeat
    ,并且在页面上呈现表格
  • 我们没有这样的10000行(其中一个表中的最大行数为450行)等等,但操作非常频繁,比如单元格闪烁/运行单元格样式的函数
  • 我们的桌子是什么样子的:(其中一张桌子)

  • 我在ag grid方面也有过不好的经验,在ag grid中,cpu使用率很高,显然没有任何原因。但在您的情况下:为什么您需要每分钟更新网格500次?我只需缓存数据并在某个安全间隔上更新网格,比如说一秒钟左右的时间。500,4分钟内接收到的网格总事件,例如,考虑到你有实时的交易数据。因此,一个网格反映的是大量的活动用户,一个网格反映的是用户的活动,另一个网格反映的是这些活动用户提交的票证的状态,等等。因此,当测试这些用户的限制或说事件网格接收时,它开始显示缓慢,或者即使2-3个选项卡打开(用户通常会这样做)结果是执行起来非常昂贵