我不知道论坛的大神在用 appium 写自己的框架的时候,有没有预见 Node.js 内存溢出问题,我遇见了。。

为了这个问题,我困惑了 1 个月,给老美发邮件沟通,他们说他们没有这个问题,我后来归结为 Hybrid App 混合框架才会有的问题。

我的 case 运行在 1~2 小时之间,发现 Node 进程内存一路飙升,至今我也没有很好的解决方案,美国人说他们改了,但是我运行下来,还是内存溢出,对 node.js 又不太熟悉,放弃修改他们源代码的想法。

但是我找到了一个零时解决方案。你们没有看错。是我找到了一条暂时解决方案。

首先找到
Appium\node_modules.bin\appium.cmd
这个文件,为什么我要找这个呢?

因为我的 appium.js 是通过代码调用的,所以我找到了代码调用的入口。

然后 node server 这个东西是一个轻量的服务器,那么一定会有参数控制它的内存 GC 机制,我很幸运找到了。

@IF EXIST "%~dp0\node.exe" (
"%~dp0\node.exe " "%~dp0..\appium\bin\appium.js" %*
) ELSE (
node --max-old-space-size=1900 --max-stack-size=4089 --max-new-space-size=10000 --gc-global "%~dp0..\appium\bin\appium.js" %*
)

为什么参数要这样写呢,其实我也是一知半解,但是这几个参数是我试验出来最好的效果了。

我的机器配置是 win7 64 位,8G 内存。

欢迎其他大神,也能深入发掘一下,另外如果有人想修改 appium 的代码,请邀请我。


↙↙↙阅读原文可查看相关链接,并与作者交流