gpt4 book ai didi

javascript - 如何分析 meteorjs 性能

转载 作者:行者123 更新时间:2023-11-30 12:41:28 24 4
gpt4 key购买 nike

我有一个提供聊天室功能的 meteor.js 应用程序。突然,当切换房间时,聊天加载(50 条消息)非常慢。 50 条消息需要几秒钟的时间,我可以看到它们一条一条地弹出。这是在我的本地机器上,开发者数据库只有很少的条目。

现在,这个问题在 Chrome 中不太明显,所以我怀疑这是一个客户端问题。但是,我不知道从哪里开始调试它。我的模板被填充了很多次,每次都比上次多一些消息。

使用 Safari 分析器显示 _.forEach,具有 minimongo 函数的深度调用树,消耗了总 CPU 时间的 32%,其中(空闲)消耗 35%,(程序)消耗 16%。

我也在调查 Kadira。看起来它应该能够帮助我,但我唯一能让它告诉我的是“房间”是最慢的 12 毫秒的刻字。消息不存储在房间中,它们是一个单独的集合,每条消息都包含一个房间 ID。

我知道这是一个有点模糊的问题,但我只是想知道一般情况下 Meteor 应用程序性能分析的选项是什么,我猜。

最佳答案

最近我遇到了同样的问题,想调试客户端消息和查询更新。我认为客户端没有官方工具。但您可以在本地环境中按如下方式进行调试。我用过meteor 0.8.2版本。

  1. 您可以使用 minimongo 和 livedata meteor 核心包跟踪客户端 minimongo 更新和 sockjs 消息传输。

  2. Meteor 不允许更改核心包中的文件。因此,将这两个包文件夹从 meteor core 复制并粘贴到您的项目包文件夹中。

  3. 现在核心包将​​被您的本地包替换。您可以将 console.log 添加到执行时间较长的函数。

  4. 根据我的发现,在以下文件中触发了高堆。并且我已经根据粘贴箱中的代码记录了点。

     i. packages/livedata/livedata_connection.js : http://pastebin.com/zSxim0ij
    ii. packages/minimongo/minimongo.js : http://pastebin.com/FaP0Sfqs
    iii packages/livedata/sockjs-0.3.4.js : http://pastebin.com/kiWn0Ybx

如果您使用相同的 meteor 版本,您可以简单地用 pastebin 内容替换文件。

要监视从客户端到外部的 ddp msg 事务,您可以使用这个不错的工具。 https://github.com/arunoda/meteor-ddp-analyzer

我猜 kadira 正在开发客户端监控工具。希望问题能得到解决。

关于javascript - 如何分析 meteorjs 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24288211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com