11、Java 应用性能优化与负载测试全解析

Java 应用性能优化与负载测试全解析

1. 线程停滞问题

线程停滞(Thread stall)指的是线程在等待通知,但通知永远不会到来的情况。当一个线程调用对象的 wait() 方法,而没有其他线程调用该对象的 notify() 方法时,就会发生这种情况。线程停滞是一种多线程问题,通过性能分析器可以检测到。

2. 识别高成本方法以提升性能

性能优化是一个复杂的主题。Java 性能已经有了很大的提升,现代的即时编译器(JIT)能提供出色的速度和代码优化。影响最终执行速度的最重要因素是应用程序设计和实现的质量。一些常见的陷阱和解决方法可以显著提高性能,重写几个关键方法可能使应用程序的响应速度提高 10 倍。

性能优化从识别瓶颈开始。在设计阶段就应考虑性能,但不建议为了预期的微小性能提升而牺牲清晰的设计。在代码开发和单元测试过程中,应该进行性能分析,找出哪些方法耗时最多,通常在集成测试阶段进行大量的性能分析。

性能分析收集各种执行统计信息,以了解时间实际花费在哪里。JProbe 性能分析器产生的最有用的指标如下:
| 指标 | 说明 |
| ---- | ---- |
| 方法时间(Method time) | 显示执行给定方法所花费的时间,不包括调用其他方法所花费的时间 |
| 方法调用次数(Method number of calls) | 显示方法被调用的次数,可用于识别优化后对整体性能影响最大的方法 |
| 平均方法时间(Average method time) | 显示执行方法的平均时间,相当于方法时间除以调用次数,可用于

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值