Mac OS 内存监测报错
suutaku opened this issue · 14 comments
你好,第一次使用easy-monitor
环境
Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64 x86_64
选择内存监测
报错如下
[Easy-Monitor: embrace <76897>] common.socket->onData error: TypeError: Cannot read property 'profilerP' of undefined
at _start (/Users/john/Documents/GitHub/Furseal/node_modules/easy-monitor/src_logic/embrace/controller/tcp.profiler.js:48:52)
at _start.next (<anonymous>)
at onFulfilled (/Users/john/Documents/GitHub/Furseal/node_modules/easy-monitor/node_modules/co/index.js:65:19)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:89:5)
[Easy-Monitor: dashboard <76900>] common.socket->onData error: TypeError: Cannot read property 'composeKey' of undefined
at _stat (/Users/john/Documents/GitHub/Furseal/node_modules/easy-monitor/src_logic/dashboard/controller/tcp/tcp.stat.js:34:41)
at _stat.next (<anonymous>)
at onFulfilled (/Users/john/Documents/GitHub/Furseal/node_modules/easy-monitor/node_modules/co/index.js:65:19)
at /Users/john/Documents/GitHub/Furseal/node_modules/easy-monitor/node_modules/co/index.js:54:5
at new Promise (<anonymous>)
at co (/Users/john/Documents/GitHub/Furseal/node_modules/easy-monitor/node_modules/co/index.js:50:10)
at controller.<computed> (/Users/john/Documents/GitHub/Furseal/node_modules/easy-monitor/src_logic/dashboard/controller/tcp/tcp.stat.js:20:16)
at /Users/john/Documents/GitHub/Furseal/node_modules/easy-monitor/src_logic/common/common.socket.js:102:67
at Array.forEach (<anonymous>)
at Object.onData (/Users/john/Documents/GitHub/Furseal/node_modules/easy-monitor/src_logic/common/common.socket.js:93:20)
[Easy-Monitor: dashboard <76900>] http.axios.profiler error: TypeError: Cannot read property 'composeKey' of undefined
[Easy-Monitor: dashboard <76900>] http.axios.profiler error: TypeError: Cannot read property 'composeKey' of undefined
[Easy-Monitor: dashboard <76900>] http.axios.detail error: TypeError: Cannot read property 'composeKey' of undefined
是缺少某个包导致的吗?
v8-profiler-node8
收到!
尝试过
node i v8-profiler-node8
node i v8-profiler-node8 -g
TOUCH Release/obj.target/action_after_build.stamp
+ v8-profiler-node8@6.1.1
added 68 packages from 36 contributors in 22.634s
还是不能运行。
我的node版本是
v12.10.0
你启动的时候报了什么错误么
[Easy-Monitor] <common.profiler.js> load error: Error: Cannot find module './build/profiler/v6.1.1/node-v73-darwin-x64/profiler.node'
Require stack:
- /Users/john/Documents/GitHub/Furseal/node_modules/easy-monitor/node_modules/v8-profiler-node8/v8-profiler.js
- /Users/john/Documents/GitHub/Furseal/node_modules/easy-monitor/src_logic/common/common.profiler.js
- /Users/john/Documents/GitHub/Furseal/node_modules/easy-monitor/src_logic/common/common.js
- /Users/john/Documents/GitHub/Furseal/node_modules/easy-monitor/dispatch.js
- /Users/john/Documents/GitHub/Furseal/node_modules/easy-monitor/index.js
- /Users/john/Documents/GitHub/FursealClient/main.js
- /Users/john/Documents/GitHub/Furseal/node_modules/electron/dist/Electron.app/Contents/Resources/default_app.asar/main.js
-
[Easy-Monitor] <common.profiler.js> load error: Error: Cannot find module './build/profiler/v6.1.1/node-v73-darwin-x64/profiler.node'
Require stack:
- /Users/john/Documents/GitHub/Furseal/node_modules/easy-monitor/node_modules/v8-profiler-node8/v8-profiler.js
- /Users/john/Documents/GitHub/Furseal/node_modules/easy-monitor/src_logic/common/common.profiler.js
- /Users/john/Documents/GitHub/Furseal/node_modules/easy-monitor/src_logic/common/common.js
- /Users/john/Documents/GitHub/Furseal/node_modules/easy-monitor/src_logic/dashboard/_fork.js
哦,是没有可执行文件
rm -rf node_modules/v8-profiler-node8
然后再重新安装,这个就是 v8-profiler-node8
这个包没有成功安装。
尝试了重新安装,
确认了下:
john@Station-431017:Fur$ ls -la node_modules/v8-profiler-node8/build/profiler/v6.1.1/node-v72-darwin-x64/profiler.node
-rwxr-xr-x 1 john staff 67428 Nov 14 18:00 node_modules/v8-profiler-node8/build/profiler/v6.1.1/node-v72-darwin-x64/profiler.node
不过还是一样的报找不到profiler.node
的错误
补充一下,我不是直接使用node
命令来运行的。工程是一个Electron app
,使用npm start 命令打开的。
你看你的报错信息,缺少的是 node-v73-darwin-x64
,你安装后只有 node-v72-darwin-x64
,这里的 v72 v73 是 node.js 内部的一个 ABI 版本号,显然原因是你启动进程使用的 node.js 版本和安装 v8-profiler-node8 这个包的 node 版本不一致
这个就麻烦了,重新安装编译会有其他问题。我试试用node直接脱离electron
来运行。
谢谢。
但是我看有一个 issue #92 是说可以在 electron 下运行的,electron 确实会维护一个单独的 binding 版本,你可以尝试下把 v72 改成 v73,能不能运行。
v8-profiler-node8 这个包理论上都是纯粹的 v8 api 封装了下,只要 v8 版本一致应该是 abi 兼容的
好的,我尝试一下。
现在直接写了一个简单的main,已经能够分析了。electron部分的UI性能已经使用inspect调优过了,问题应该不大。后端的node.js代码我就先用这个临时的解决方案。
感谢你的支持。
OK,那我先关闭这个 issue 了
Ps,正在搞 Easy-Monitor 3.0,会更强大更全面,有兴趣可以关注下 https://github.com/hyj1991/xprofiler
OK,那我先关闭这个 issue 了
Ps,正在搞 Easy-Monitor 3.0,会更强大更全面,有兴趣可以关注下 https://github.com/hyj1991/xprofiler
关注学习中。
js我刚上手。