go java web框架_为什么Go的web框架速度还不如Java?

Web框架是IO密集型程序,包含HTTP协议的编解码,你可以理解为动态的字符串的处理,因为HTTP/1.1是文本类型的协议。还有JSON编解码,涉及到语言内的数据结构跟JSON之间的转换。还有跟数据库的交互,也是语言外部的IO操作。编译型语言的密集计算性能体现不出优势。

TechEmpower的Fortunes测试(select查询asort排序foreach输出HTML测试)来看, PHP底层基于Event扩展的workerman-pgsql(352,508)高于Go的fasthttp-quicktemplate(319,764),低于Go的fasthttp-prefork-quicktemplate(363,587). 但都处于一个性能级别.https://www.techempower.com/benchmarks/​www.techempower.com

特殊场景下,比如生成动态增长的不定长数量的大型字典,其中键名包含字符串连接和系统时间戳获取,PHP这类动态解释型语言反而比Go这种编译型语言还要快不少。网友提供的深度优化的Go代码对比PHP测试

网友深度优化的Go代码,依旧比最普通的PHP代码慢,内存占用两者相当,都是90MB左右.

所谓Go的开发效率和性能,在这次与PHP的较量中,有点像个笑话!

截图可见,这是一个一条命令直出同时cat显示源代码的对比测试,避免有人认为我作弊.

cat hash.go && go build hash.go && ./hash && go version && cat hash.php && time php hash.php

测试环境是我的新的Linux笔记本,处理器是i7-8750H,所以要比第一张图里的i5-3230M快.

你可能感兴趣的:(go,java,web框架)