吞吐量 吞吐量是单位时间内可以执行的工作量的度量。吞吐量要求忽略延迟或响应时间。通常,增加吞吐量会以增加延迟和/或增加内存占用为代价。
性能吞吐量要求的一个例子是“应用程序每秒执行2500个事务”。
延迟和响应时间 延迟或响应时间是指在应用程序接收到刺激并完成工作之间经过的时间。延迟或响应时间要求忽略吞吐量。通常,提高响应速度或降低延迟会以降低吞吐量和/或增加内存占用为代价。
延迟或响应时间要求的一个例子是“应用程序必须在60毫秒内完成交易请求”。
内存占用 内存占用是衡量在某个吞吐量、某个延迟或某个可用性和可管理性水平下运行应用程序所需的内存量的度量。内存占用通常表示为运行应用程序所需的Java堆大小或总内存量。通常,通过增加Java堆大小来增加内存占用可以改善吞吐量或降低延迟,或者两者兼备。当可用于应用程序的内存减少时,通常会牺牲吞吐量或延迟。
它与可用内存的总量有什么关系 ==> 在大多数情况下(非IO受限系统),随着任何进程可用的内存增加,其性能和吞吐量也会增加。在JVM的情况下,随着堆大小的增加,GC将要做的工作很少。因此,吞吐量与内存成反比例关系(并非总是如此,请记住这一点)。
接下来,吞吐量是非GC线程完成任务所需的总时间。