Mr-Vincent / simple-rpc

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

simple-rpc

一款十分简单的rpc框架 渣渣性能 仅供娱乐消遣

features

  • 采用最传统的阻塞io,性能足以被任何框架秒杀
  • 纯jdk实现,无任何第三方依赖

性能

  • 同步调用

第0次优化

没有任何优化的结果:

Request count: 256000, time: 506 second, qps: 505

第1次优化

本屌将同步方式改为炫酷的AQS实现,放弃使用sync关键字(原因在于sync是基于字节码,在jvm指令层实现的同步,开销很大,而AQS基于语义实现的同步)性能提升了3倍,优化效果很棒!

Request count: 256000, time: 177 second, qps: 1446

第2次优化

本屌又将序列化方式换为google的proto实现 性能提升不是很明显,因为只是将字节压缩了,测试跑在同一台机器上,没法体现。

Request count: 256000, time: 141 second, qps: 1815

第3次优化

本屌将服务端的反射实现改为cglib而不是用jdk原生实现,性能有所提高。

(最新数据)Request count: 256000, time: 116 second, qps: 2206

开始重构

todo

  • 网络接口层抽象
  • 自定义实现注册中心
  • spi加载机制
  • spring支持
  • 异步调用支持

About


Languages

Language:Java 100.0%