在工作的项目中,我的主要开发语言是php,因需求或者为弥补php的缺陷,需要为php做各种各样的扩展,比如php本身不支持线程,没有队列,进程也不无法用于生产环境, 可以说php没有任何“程”,因而网上有较多的文章阐述如何实现php队列,多线程等等,在我的理解,与其用php本身实现这种无法保证健壮的特性,不如去发掘运用一些本身集成,且表现优异的语言。

微博中了解到了golang语言, golang的语法类似 C和python, 有这两种语言经验的同学入门会比较顺利! golang语言的优点在这里就不一一阐述了!!
学习了一段时间之后,维护的业务正好遇到瓶颈,另因我维护的业务属于接口层,逻辑比较简单,只输出json数据,所以开始着手利用golang重构现有系统,改造中,因部分同事对golang比较怀疑,另外网上的性能对比,大部分只是hello word输出,参考意义很小,所以利用线上两台内网机器,做了一次php和golang的正式业务性能对比

服务器配置 : 16核 E5620 @ 2.40GHz 11G内存
业务包含:DB(oracle)和 redis查询, 当有缓存之后,DB不再查询,直接读取redis, 批量查询两个主键

使用apache的ab测试 并发200,20000个请求

golang 并发测试
golang的qps 大约在 9675/s, 最高10200/s 左右 ,cpu利用率高峰在10.6% 上下golang开启了多核, 并且维护了40个redis连接池

go.png

上面php的链接是golang的url重写,为了兼容php的项目,不要误解!

PHP并发测试
php的QPS大约是 1726/s, 最高2100/s 左右, cpu 高峰在50.1% 比较恐怖

go-2.png

另外也测试了更多主键的批量查询, golang的处理能力降到 4700/s, php到 1078/s, 将ab并发加到400时, php开始出现请求失败的情况,
golang的并发加到2500后,惊讶其表现依然出色, 有怀疑的可以自行测试

上面的测试结果得出的结论: 因多核利用,golang的”多线程”, 还有redis连接池, 使得go在和php并发对比中遥遥领先,处理能力大约是php的4倍

所以建议维护着请求量较大,遇到瓶颈项目的同学可以尝试使用golang改善!

以上就是go 为什么比php性能高的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

  • 相关标签:go
  • 程序员必备接口测试调试工具:点击使用

    Apipost = Postman + Swagger + Mock + Jmeter

    Api设计、调试、文档、自动化测试工具

    网页生成APP,用做网站的技术去做APP:立即创建

    手机网站开发APP、自助封装APP、200+原生模块、2000+映射JS接口按需打包

    • 上一篇:gin是什么意思?
    • 下一篇:go语言适合做什么?

    相关文章

    相关视频


    • go语言和php的区别是什么?
    • go语言适合干什么
    • django如何避免sql注入
    • go 为什么比php性能高
    • 64 - Google Maps Integration - Modern React with Redux
    • 65 - Google Maps Integration Continued - Modern React with Redux
    • Google Prettify

    视频教程分类

    • php视频教程
    • html视频教程
    • css视频教程
    • JS视频教程
    • jQuery视频教程
    • mysql视频教程
    • Linux视频教程
    • Python视频教程
    • Laravel视频教程
    • Vue视频教程

    专题

    go 为什么比php性能高