Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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
Javascript 如何分析meteorjs性能_Javascript_Meteor_Profiling - Fatal编程技术网

Javascript 如何分析meteorjs性能

Javascript 如何分析meteorjs性能,javascript,meteor,profiling,Javascript,Meteor,Profiling,我有一个meteor.js应用程序,提供聊天室。突然之间,当切换房间时,聊天负载(50条消息)异常缓慢。这50条信息需要几秒钟的时间,我可以看到它们一个接一个地出现。这是在我的本地机器上,有一个开发人员数据库,只有很少的条目 现在,这个问题在Chrome中不太明显,所以我怀疑这是客户端问题。但是,我不知道从哪里开始调试这个。我的模板被填充了很多次,每次都比上次多了几条消息 通过使用Safari profiler,我发现u0.forEach和minimongo函数的深层调用树消耗了总cpu时间的3

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

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

通过使用Safari profiler,我发现u0.forEach和minimongo函数的深层调用树消耗了总cpu时间的32%,其中(空闲)消耗了35%,而(程序)消耗了16%

我也在调查卡迪拉。它看起来应该可以帮助我,但我唯一能让它告诉我的是,“房间”是最慢的12毫秒的立方体脚本。邮件不存储在房间中,它们是一个单独的集合,每条邮件都包含一个房间id


我知道这是一个有点模糊的问题,但我只是想知道Meteor应用程序性能评测的一般选项是什么。

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

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

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

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

  • 根据我的发现,在以下文件中会触发高堆。我已根据粘贴箱中的代码记录了点数

     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事务,您可以使用这个漂亮的工具

    我猜kadira正在致力于创建客户端监控工具。希望届时问题会得到解决