版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xqj198404/article/details/80354928
性能优化目标
- 更快响应速
- 更少的资源占用
- 更高的并发量
基础
- linux系统cpu分片时间在5ms~800ms
- 而一个标准linux内核支持50~50000
- linux在分配运行时间时倾向于有IO消耗进程的优先级。sleep_avg越大的进程优先级别越高,而分配的运行时间越多。
- 在linux上线程其实是一种所谓轻量级进程的实现,并且在内核3.0以后有所优化,创建速度比普通进程的创建快10~100倍。
- cpu核心的运行队列最好是核心数X2
- 大量上下文切换会花费几多的时间与空间代价,影响系统性能
- 每一个进程无法全部消耗cpu核心的处理能力
- java的full GC操作严重影响性能
- java内存中老代对象的存储空间过小会提高full GC的频率,过大会造成full GC的时间过长
设计与优化思路
- 提高时间片内处理请求数量为核心目的
- 依据目标硬件设计架构,最好按照一核一线程
- 变量申请会消耗命令数量,减少变量创建
- 每一个请求的需要处理的命令数量需要尽可能的少
- 跨网络的请求虽然时间消耗少,但是可能会有io等待产生产生时间片的无操作损耗。
- 功能完善的开源框架虽然提供的开发的便利性,但是如果需要极致的性能需求,简单粗暴目的明确的代码实现方式更为合适。