聊聊phantomjs的优化措施

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

phantomjs

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

优化点

  • 池化技术,避免重复启动api

    对于其余语言进行进程间调用的话,频繁地调用进程进行上下文切换以及频繁建立对象及其消耗时间,所以能够进行链接池优化处理浏览器

  • 设置about:blank,避免状态没有清除的bug缓存

    在引入链接池以后,处理很差的话,难以免的带来不少状态的错乱,相似java的threadlocal,在tomcat链接池中使用的话,若是上一个线程使用完没有清除掉,则下个复用该线程的请求则会读到脏数据。tomcat

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

  • 开启disk-cache网络

    若是对同一个页面访问比较频繁,则开启cache缓存一些静态资源,避免重复请求并发

  • 抛弃selenium,直接使用apiless

    若是你是使用selenium的封装来调用的话,那么能够考虑直接使用原始api,更直接一些。

  • 构建分布式rest api服务

    请求网络资源的处理,多是很是耗时的,也及其不稳定,所以吞吐量确定不高,高并发的时候很容易出现瓶颈,必要的时候进行分布式部署。

小结

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

doc

相关文章
相关标签/搜索