Phantom JS加载example.com需要1分钟以上

时间:2014-03-07 01:28:27

标签: javascript phantomjs

我是使用phantomjs的新手,我只是尝试使用网站上提供的示例加载和呈现页面:

var url='http://www.example.com'
var page = require('webpage').create();
page.open(url, function() {
  page.render('example.png');
  phantom.exit();
});

这需要一分钟才能运行,正如time报告的那样。

我在使用千兆以太网连接的现代笔记本电脑(Thinkpad X1 Carbon)上运行,在Firefox中加载同一页面的时间不到一秒。

有任何提示可以找到导致此问题的根本原因或常见原因吗?

更新:我尝试评论page.render,但运行时间非常相似,所以我认为这不是渲染速度问题。

1 个答案:

答案 0 :(得分:1)

很难说出你的瓶颈在哪里没有任何细节。提供您正在运行的phantomjs和平台版本。一般来说,我会尝试通过执行以下步骤来找出问题所在:

  • 尝试运行没有js参数的phanomjs,比如bin / phantomjs --version

在我的情况下,它是1.9.1。它应该马上响应。

  • 尝试简化您的js,例如在您的情况下,您可以删除:

    page.render( 'example.png');

  • 尝试安装新版本的phantomjs。或者如果您已经使用,请尝试不同的版本。

  • 尝试查看HAR输出:

    bin / phantomjs examples / netsniff.js http://www.example.com

结果你会看到如:

 "entries": [
            {
                "startedDateTime": "2014-03-07T11:18:49.841Z",
                "time": 1013,
                "request": {

所以,在我的情况下,在将phantomjs加载到内存后,加载页面需要1013毫秒。

如果它对你来说差不多就意味着,在加载phantomjs本身时会出现问题。您可以尝试使用 strace 调试phantomjs,如果您使用的是Linux,或者analog适用于Windows。

strace bin/phantomjs examples/netsniff.js http://www.example.com

然后,看看它停止的系统调用。