看了朴灵大师的九浅一深,自己实验对比一下Java,关于node.js 的性能疑惑,一点都没有喷的意思啊,向来推崇:不以求备取人,不以己长格物,发帖求问只是好奇~~
先说明一下测试环境:
两台几乎一样配置的手提,在同一100M局域网
CPU:Intel i5 4210U
内存:8G
操作系统: win10
测试工具: ab
请求并发均是300
- 先测试express 简单的session检测页面,逻辑类似于login页面:
没有使用模板,看到各项性能测试数据还是不错,期间node服务进程CPU咱用率稳定在30%,内存使用90M,基本可以忽略
- 再来 express login页面,输出模板是jade
此时延迟已经比较大,系统占用资源和1差不多,为什么延迟会达到7000ms这么高?本页面没有复杂逻辑可言
- 接着就是Java web,与上面2相同,也是一个登录页面
几乎都在2000ms完成?在这里显示出来的,为什么java 处理并发性能明显比node好这么多?不同的是java虚拟机占用的内存达到700M,这么大的内存,对于32 位的node来说分分钟会挂。
- 在对比中有很多不严谨之处,但是侧面能看出一点问题:
1和2相比,是否说明如果在node里面使用jade模板技术会大大降低node处理并发的速度呢?如果是,这差距也太大了吧
2和3相比,同样在不优化的情况下,同样的业务逻辑,java web优胜于node,也就是Java虚拟机还是比V8厉害。
话说回来V8作者和Java虚拟机作者原来是同一位天才~~