当我们关注Java应用的性能时,通常会聚焦两个因素:响应能力(responsiveness)和吞吐量(throughput)。
响应能力
响应能力(Responsiveness)
,指的是应用或系统对请求的数据响应有多快。例如:
- 桌面UI对触发事件响应有多快
- 网站返回请求的页面有多快
- 数据库查询返回结果有多快
对于强调响应能力的应用来说,长时间的暂停是不可接受的,关注的焦点 是响应时间的长短。
吞吐量
吞吐量(Throughput)
,指的是在指定的时间内,应用作业的最大数量。吞吐量的衡量指标比如:
- 在指定时间内完成了多少个事务
- 在一个小时内批处理任务完成了多少任务
- 在一个小时内数据库查询了多少次
对于聚焦于吞吐量的应用来说,较高的暂停是可以接受的。由于吞吐量的衡量基准是基于很长一段时间,所以快速响应不是考虑在内的因素。