搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 码匠的流水账 > 聊聊phantomjs的优化措施

聊聊phantomjs的优化措施

码匠的流水账 2017-11-30

本文主要小结一下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的爬虫那些事儿


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《聊聊phantomjs的优化措施》的版权归原作者「码匠的流水账」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注码匠的流水账微信公众号

码匠的流水账微信公众号:geek_luandun

码匠的流水账

手机扫描上方二维码即可关注码匠的流水账微信公众号

码匠的流水账最新文章

精品公众号随机推荐