Java for You 架构设计 6.3 性能优化

6.3 性能优化

软件性能优化的两个基本原则

  • 你不能优化一个没有测试的软件
  • 你不能优化一个你不了解的软件

​

性能测试的主要指标

  • 响应时间:完成一次任务花费的时间。
  • 并发数:同时处理的任务数。
  • 吞吐量:单位时间完成的任务数。
  • 性能计数器:System Load,线程数,进程数,CPU,内存,磁盘,网络使用率

​

​

Spark 应用性能测试

image.png

性能优化的一般方法

  • 性能测试,获得性能指标
  • 指标分析,发现性能与资源瓶颈点
  • 架构与代码分析,寻找性能与资源瓶颈关键所在
  • 架构与代码优化,优化关键技术点,平衡资源利用
  • 性能测试,进入性能优化闭环

​

​

不要拿着锤子去砸钉子,而是要找钉子。

​

系统性能优化的分层思想

  • 机房与骨干网络性能优化
  • 服务器与硬件性能优化
  • 操作系统性能优化
  • 虚拟机性能优化(垃圾回收,即时编译,锁)
  • 基础组件性能优化
  • 软件架构性能优化(分布式缓存,队列,消息等)
  • 软件代码性能优化

机房与骨干网络性能优化

image.png

美国到中国 300ms,就近提供服务器可以提升访问速度。

​

服务器与硬件性能优化

image.png

普通硬盘是毫秒级,

​

硬件性能优化案例

网络传输达到上限。

​

优化方案:升级网卡,10G网卡代替1G网卡。

​

image.png

操作系统性能优化

操作系统性能优化案例

image.png

虚拟机性能优化

image.png

基础组件性能优化

image.png

软件架构性能优化三板斧

  • 缓存
  • 异步
  • 集群

​

缓存

image.png

异步

  • 即时响应,更好的用户体验。
  • 控制消费速度,合适的负载压力。
  • 异步主要优化写操作。

image.png

集群

image.png

软件代码性能优化

遵循面向对象的设计原则与设计模式编程,很多时候程序性能不好不是因为性能上有什么技术挑战,仅仅就是因为代码太烂了。

​

  • 并发编程,多线程与锁。
  • 资源复用,线程池与对象池。
  • 异步编程,生产者消费者。
  • 数据结构,数组,链表,hash表,树

​

代码优化案例

image.png

image.png

本文由 java4u.cn 发布,可自由转载、引用,但需署名作者且注明文章出处(作者:白色蜗牛,出处:java4u.cn)。如转载至微信公众号,请在文末添加作者公众号二维码。 https://java4u.cn/architecture/3717.html

作者: 蜗牛

6.2 全链路压测

6.4 操作系统

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

联系我们

公众号:蜗牛互联网

在线咨询: QQ交谈

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部