聊聊phantomjs的优化措施

本文总结了PhantomJS的优化措施,包括池化技术、设置about:blank避免状态残留、开启disk-cache、直接使用API而非Selenium封装及构建分布式REST API服务等。此外还提到了Chrome和Firefox推出的类似headless版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要小结一下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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值