【发布时间】:2016-02-29 16:45:35
【问题描述】:
我们使用 PhantomJs 2.0 来截取网页截图。我们发现处理一个特定页面需要几分钟时间。此页面在 Chrome 中加载时似乎没有此问题(或至少没有任何可比较的程度)。
我相信这是因为 javascript 挂起/运行非常缓慢。在挂起期间,Phantom 正在使用大量 CPU(尽管只有一个内核)。它似乎没有占用异常数量的内存。我相当有信心 javascript 是罪魁祸首,因为我可以从日志中看到所有请求都很快完成,但是在页面加载后 Phantom 会挂起一段时间并且不会运行任何东西(我认为这是因为 Phantom 都是单线程的所以如果页面仍在运行 javascript,我的 Phantom 脚本将不会运行任何东西)。
我想调试并尝试了解 JS 的哪一部分花费了这么长时间,但我不知道如何在 Phantom 中解决这个问题。例如,我似乎无法从console.profile/console.profileEnd 收集任何输出。如何分析 Phantom 中运行的 javascript 以找到瓶颈?
【问题讨论】:
-
如果你有 Intellij,你可以看看spy-js。
标签: javascript phantomjs profiling