当我们关注Java应用的性能时,通常会聚焦两个因素:响应能力(responsiveness)和吞吐量(throughput)。

响应能力

响应能力(Responsiveness),指的是应用或系统对请求的数据响应有多快。例如:

  • 桌面UI对触发事件响应有多快
  • 网站返回请求的页面有多快
  • 数据库查询返回结果有多快

对于强调响应能力的应用来说,长时间的暂停是不可接受的,关注的焦点 是响应时间的长短。

吞吐量

吞吐量(Throughput),指的是在指定的时间内,应用作业的最大数量。吞吐量的衡量指标比如:

  • 在指定时间内完成了多少个事务
  • 在一个小时内批处理任务完成了多少任务
  • 在一个小时内数据库查询了多少次

对于聚焦于吞吐量的应用来说,较高的暂停是可以接受的。由于吞吐量的衡量基准是基于很长一段时间,所以快速响应不是考虑在内的因素。