我是使用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
,但运行时间非常相似,所以我认为这不是渲染速度问题。
答案 0 :(得分:1)
很难说出你的瓶颈在哪里没有任何细节。提供您正在运行的phantomjs和平台版本。一般来说,我会尝试通过执行以下步骤来找出问题所在:
在我的情况下,它是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
然后,看看它停止的系统调用。