聊聊phantomjs的优化措施

本文主要小结一下phantomjs的优化措施

phantomjs

phantomjs相当于一个后台浏览器,有点内嵌jetty的味道,通常在自动化测试或者爬虫领域用。

优化点

  • 池化技术,避免重复启动 对于其他语言进行进程间调用的话,频繁地调用进程进行上下文切换以及频繁创建对象及其消耗时间,因此可以进行连接池优化处理
  • 设置about:blank,避免状态没有清除的bug 在引入连接池之后,处理不好的话,难以避免的带来很多状态的错乱,类似java的threadlocal,在tomcat连接池中使用的话,如果上一个线程使用完没有清除掉,则下个复用该线程的请求则会读到脏数据。

phantomjs貌似没有reset的接口,这里可以使用一个黑魔法,在每次get的时候,先打开一个blank,然后再进行请求。

  • 开启disk-cache 如果对同一个页面访问比较频繁,则开启cache缓存一些静态资源,避免重复请求
  • 抛弃selenium,直接使用api 如果你是使用selenium的封装来调用的话,那么可以考虑直接使用原始api,更直接一些。
  • 构建分布式rest api服务 请求网络资源的处理,可能是非常耗时的,也及其不稳定,因此吞吐量肯定不高,高并发的时候很容易出现瓶颈,必要的时候进行分布式部署。

小结

除了phantomjs,chrome以及firefox也推出类似的headless版本,因此也多了几个选择,有待进行尝试。

doc

  • 【phantomjs系列】Phantomjs正确打开方式
  • 【phantomjs系列】Phantomjs Api介绍
  • 【phantomjs系列】Selenium+Phantomjs性能优化
  • 【phantomjs系列】Selenium+Phantomjs爬过的那些坑
  • Selenium+PhantomJS的爬虫那些事儿

原文发布于微信公众号 - 码匠的流水账(geek_luandun)

原文发表时间:2017-11-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏知晓程序

开发 | 一款记账小程序的开发全过程,附避坑指南

趁着最近上班不是特别忙,自己闲来无事也跟着捣鼓了一款个人记账用的小程序:「小记一笔」。

1352
来自专栏DeveWork

WordPress 注册页面显示自定义提示信息

如果你的WordPress 网站是多用户网站,那么在提供给用户注册的时候,可以自定义一些提示信息,比如说网站协议、版权声明之类的。把下面的代码放到主题的func...

2037
来自专栏前端儿

移动前端页面与Chrome的远程真机调试

前几日刚入手新手机小米5,系统真心流畅呀。为啥要买小米5呢,因为要提高生产力呀,好好玩移动前端开发呀哈哈哈

5753
来自专栏小白课代表

Axure RP 7.0 安装教程

1356
来自专栏向治洪

Hera-将小程序打包成移动APP的开发框架

继移动APP之后,小程序作为当前移动的有一个入口为大家所推崇,不管是微信的小程序还是支付宝的小程序,其实现的思路都是一致的,即通过一个宿主来运行相关的JS页面。...

8967
来自专栏程序员互动联盟

【专业技术】Windows编程技巧小结

我们在编写程序的时候,常常会需要一些线程的delay函数。这个问题说简单也简单,说复杂也复杂。比如很多人读知道delay直接用Windows的API函数Slee...

3585
来自专栏前端布道

Angular开发实践(一):环境准备及框架搭建

引言 在工作中引入Angular框架将近一年了,在这一年中不断的踩坑和填坑,当然也学习和积累了很多的知识,包括MVVM框架、前后端分离、前端工程化、SPA优化等...

3837
来自专栏信安之路

Clickjacking简单介绍

今天没有原创文章发了,从乌云知识库里选了一个文章给大家分享一下,不知道这种方式,大家是否能够接我从乌云知识库里选择一些文章给大家分享,请大家给我提出来,我来根据...

900
来自专栏Puppeteer学习

基于puppeteer模拟登录抓取页面

在网站分析行业中,网站热图能够很好的反应用户在网站的操作行为,具体分析用户的喜好,对网站进行针对性的优化,一个热图的例子(来源于ptengine)

81910
来自专栏编程微刊

微信小程序从零开始开发步骤(二)创建小程序页面

3037

扫码关注云+社区

领取腾讯云代金券