Articles of 分析

使用Spy.js运行Node应用程序不能识别使用let定义的variables

我试图运行一个简单的节点应用程序,它具有一个全局variables,用let定义,并在函数中初始化,然后用在另一个(如下面的代码) let some_variable; a.doSomething(value => { some_variable = value; doSomethingElse(); }); function doSomethingElse() { // This is where I get the error console.log(some_variable); } 当从命令行或从WebStorm运行Node应用程序时,一切顺利,但是当试图用Spy.js运行它时,它不能识别some_variable并且说some_variable is not defined 。 我尝试使用–harmony标志运行,但似乎没有任何区别。 当更改let some_variable var some_variable它似乎工作,但这将需要我改变我的整个应用程序的代码只是为了得到它的Spy.js这似乎不是一个好主意。 任何想法如何让Spy.js识别letvariables? 我错过了一个简单的configuration标志? (节点版本是6.10.1)

Node.js CPU分析系统调用

调用1 http后端的Node.js应用程序。 在启用了cpu profiler的应用程序上加载一些负载后,我得到了下面的结果。 [自下而上(重型)configuration文件]:注意:百分比显示特定呼叫者在其父呼叫总量中的份额。 占用less于2.0%的呼叫者未被显示。 蜱父母名称53352 41.9%系统调用 15733 12.4%写 系统调用和写入在这种情况下意味着什么。

如何分析Mac上的Node.jsconfiguration文件?

我正在使用Node.js 8.3。 而我使用node –prof server.js来分析我的应用程序。 我得到一些像xxxx -v8.log这样的文件。 我试图使用https://www.npmjs.com/package/node-tick-processor和https://github.com/sidorares/node-tick来分析文件。 我有兴趣看到CPUconfiguration文件。 但是输出是这样的,这不是很有帮助: [Bottom up (heavy) profile]: Note: percentage shows a share of a particular caller in the total amount of its parent calls. Callers occupying less than 2.0% are not shown. ticks parent name 65591 59.5% /usr/lib/system/libsystem_kernel.dylib 42621 65.0% /usr/local/bin/node 16632 15.1% /usr/local/bin/node 5544 33.3% /usr/local/bin/node 5888 […]

有没有办法扫描JavaScript文件的目录和文件的function?

林想知道是否有一种方法来扫描JavaScript文件的目录和文件的function? 我在想可能有一个nodejs也可以做到这一点? 我只是不想要添加任何东西本身(评论jsdoc等) 我们网站上有100多个模块,我想快速logging下来,以了解还在使用什么模块。 任何build议将是伟大的。

限制文件大小`node –prof`文件大小

我想做一下分析,以检查生产环境的原因是什么原因。 为了做到这一点,我想使用build立在node.js的configuration文件工具,它与标记node –prof index.js 。 恐怕文件大小可能很大,所以我想限制文件大小。 有没有办法做到这一点? 我已经看过文档,但找不到任何参考。 https://nodejs.org/en/docs/guides/simple-profiling/ https://github.com/v8/v8/wiki/V8-Profiler https://nodejs.org/api/cli.html#cli_prof_process

如何收集Electron桌面应用程序的用户指标?

我想收集一些基于Electron的跨平台桌面应用程序的使用指标。 这将包括有关用户环境(操作系统,屏幕大小等)的基本信息以及跟踪使用情况的能力,例如跟踪应用程序打开次数或应用程序内的特定操作。 这些度量标准应发送到分析服务器,以便可以对其进行汇总查看。 理想情况下,我可以自己托pipe服务器端组件,但肯定会考虑由第三方托pipe的解决scheme。 针对networking(Google Analytics,Piwik)以及移动应用程序,以及针对Node.js服务器端应用程序的解决scheme,有各种各样的分析解决scheme。 适用于基于桌面电子应用的这些解决scheme之一是否可行? 怎么样? 还是有没有什么好的分析解决scheme专门devise用于与Electron / javascript协同工作的桌面应用? 与典型的网页不同,用户可能会在离线状态下使用应用程序,因此离线操作应在用户上线后logging,排队并稍后发送。 桌面应用程序通常从文件系统加载页面,而不是HTTP,所以解决scheme需要能够应付这种情况。 与Node.js服务器端应用程序不同,可能有大量的客户端,而不仅仅是一个(或几个)服务器实例。 桌面应用程序的分析将以用户为中心,而服务器端的Node.js应用程序可能不是。 易于设置也是一个很大的因素 – 理想的解决scheme只需要几行configuration来收集基本指标,然后可以根据需要使用自定义操作/事件进行扩展。

如何快速构build大型分析服务器?

我需要快速构build大规模(七位数以上)的分析服务器,而且价格便宜。 Piwik将会是一个很容易的select,但是到目前为止,Piwik相当难以扩展,可能需要相当大的服务器来处理负载。 我的第二个想法是创build一个快速而肮脏的Node.js服务器,它将所有内容都推送到Amazon DynamoDB,以便人们可以从第一天开始收集数据,然后再构buildUI。 这将很快创build和缩放(垂直和水平)。 但是,我想知道DynamoDB是否是这种使用的正确select? (收集数据,生成报告)

Node.js分析:“(程序)”部分中的高使用率

组态: Node.js 0.8.15 Mac OSX 10.7.5 Webkit Devtools代理节点模块 在剖析时,我注意到configuration文件的“(程序)”部分中的利用率非常高。 “手动”分析(使用节点–prof和mac-tick-processor)在C ++部分中的___psynch_rw_unlock中显示了类似的高百分比。 程序在分析过程中的主要用途是: libxml处理 读取/写入套接字 mongodb写作 这是正常的行为,还是这是一个更深层次的问题的迹象?

用户分段引擎使用MongoDB

我有一个分析系统,以事件的forms跟踪客户及其属性以及他们的行为。 它使用Node.js和MongoDB(使用Mongoose)来实现。 现在我需要实现一个分段function,允许根据特定的条件将存储的用户分组。 例如, purchases > 3 AND country = 'Netherlands' 在前端,这看起来像这样: 这里一个重要的要求是细分市场实时更新,而不是定期更新。 这基本上意味着,每当用户的属性改变或触发新的事件时,我必须再次检查他属于哪个段。 我目前的做法是将这些段的条件存储为MongoDB查询,然后我可以在用户集合上执行,以确定哪些用户属于某个段。 例如,用于过滤所有使用Gmail的用户的细分将如下所示: { _id: '591638bf833f8c843e4fef24', name: 'Gmail Users', condition: {'email': { $regex : '.*gmail.*'}} } 当用户匹配条件时,我会直接在用户的文档中存储他属于“Gmail用户”细分: { username: 'john.doe', email: 'john.doe@gmail.com', segments: ['591638bf833f8c843e4fef24'] } 但是通过这样做,每次用户数据发生变化时,我都必须执行所有段的查询,以便我可以检查他是否是段的一部分。 从性能的angular度来看,这感觉有些复杂和繁琐。 你可以想办法解决这个问题吗? 也许使用规则引擎,并在应用程序中而不是在数据库中进行处理?

Dtrace的Node.js分析不会显示函数名称

我正在尝试使用DTrace为我的项目分析CPU利用率。 我只是跟着脚本 问题是它不显示函数名称。 stacks.out文件如下所示: CPU ID FUNCTION:NAME 0 73700 :tick-60s node`_ZN2v86Object3GetENS_6HandleINS_5ValueEEE+0x1 node`_ZN4node7TCPWrap12OnConnectionEP11uv_stream_si+0x14b node`uv__server_io+0xbf node`uv__io_poll+0x259 node`uv_run+0xda node`_ZN4node5StartEiPPc+0x16d node`main+0x1b node`_start+0x83 1 node`_ZN4node6Buffer4FillERKN2v89ArgumentsE+0x22b 0x82474d1b 0x8241ee9c 0x8241e624 0x8241e30f 0x82426abd 0x82419e4e 0x82419948 0x82413fc3 0x8d20e501 0x82416f65 0x82413f98 0x8243e7d3 0x824186c0 0x8246e8cf 0x8d221899 0x8d21308a node`_ZN2v88internalL6InvokeEbNS0_6HandleINS0_10JSFunctionEEENS1_INS0_6ObjectEEEiPS5_Pb+0x101 node`_ZN2v88internal9Execution4CallENS0_6HandleINS0_6ObjectEEES4_iPS4_Pbb+0xc9 node`_ZN2v88Function4CallENS_6HandleINS_6ObjectEEEiPNS1_INS_5ValueEEE+0x10b node`_ZN4node12MakeCallbackEN2v86HandleINS0_6ObjectEEENS1_INS0_8FunctionEEEiPNS1_INS0_5ValueEEE+0x4c node`_ZN4node12MakeCallbackEN2v86HandleINS0_6ObjectEEENS1_INS0_6StringEEEiPNS1_INS0_5ValueEEE+0x66 node`_ZN4node10StreamWrap12OnReadCommonEP11uv_stream_si8uv_buf_t14uv_handle_type+0x14f node`_ZN4node10StreamWrap6OnReadEP11uv_stream_si8uv_buf_t+0x2e node`uv__read+0x281 node`uv__stream_io+0x131 node`uv__io_poll+0x259 node`uv_run+0xda node`_ZN4node5StartEiPPc+0x16d node`main+0x1b node`_start+0x83 1 火焰图显示hex(即“0x82474d1b”)作为函数调用,而不是实际的函数名称。 我使用OmniOS(基于Illumos的操作系统)vagrant box r151002 […]