聊聊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
相关推荐
sunzhihaofuture 2020-06-14
某先生 2020-06-13
hongxiangping 2020-05-07
tiankele0 2020-04-15
songerxing 2020-03-23
wangrui0 2020-02-17
amei0 2020-01-23
Pinkr 2013-05-13
编程我在行 2020-01-18
sunzhihaofuture 2020-01-09
zhaoyingm 2019-12-12
amei0 2019-11-08
爱好HtmlCssJs 2019-11-01
ruler 2015-04-13
ncisoft 2015-06-04
浅陌游离 2016-11-15
凌云客 2019-07-16
lindiwo 2016-10-19