作者信息
视频教程分类
推荐视频教程
  • 千万级数据并发解决方案(理论+实战)千万级数据并发解决方案(理论+实战)
  • Laravel基础与实战Laravel基础与实战
  • UNI-APP开发(仿饿了么)UNI-APP开发(仿饿了么)
  • ThinkPHP6开发CMS系统ThinkPHP6开发CMS系统
  • 首页 >后端开发 >Golang > 正文

    go 为什么比php性能高

    原创2021-05-28 13:56:2315769 关注公众号:每天精选资源文章推送
    在工作的项目中,我的主要开发语言是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
  • 相关文章

    相关视频


    专题推荐