(不知道把 Ergonomics 翻译成什么比较合适。)
Ergonomics 是 “JVM” 和 “GC调优” 提高应用程序性能的过程(如,基于行为的调优)。JVM 根据所运行的平台提供了 GC、堆大小、运行时编译器 等方面的默认选择。这些选择符合不同类型应用程序的需求,可减少命令行(参数)调整。此外,基于行为的调优会动态调整堆大小,来满足应用程序的特殊行为。
本节介绍这些默认选择和基于行为的调优。在使用后续章节中描述的更详细的控制之前,先使用这些默认值。
GC、堆、运行时编译器 的默认选择
具有以下属性的机器会被定义为服务器类的机器:
- 2个或以上物理处理器
- 2GB 或以上物理内存
在服务器类机器上默认使用以下选择:
- 吞吐量GC
- 初始堆大小为 1/64 的物理内存,最大不超过 1GB
- 最大堆大小为 1/4 的物理内存,最大不超过 1GB
- 运行时编译器为 Server
64位操作系统中 堆大小 的 初始值 和 最大值 可参考章节《The Parallel Collector》中 “Default Heap Size”。
服务器类机器的定义适用于 除了运行Windows的32位平台之外的 所有平台。下表展示了不同平台中 运行时编译器 的默认选择。
平台 | 操作系统 | 默认编译器 | Server类机器上默认编译器 |
i586 | Linux | Client | Server |
i586 | Windows | Client | Client (注1) |
SPARC(64位) | Solaris | Server | Server(注2) |
AMD(64位) | Linux | Server | Server(注2) |
AMD(64位) | Windows | Server | Server(注2) |
- 注1:即使在服务器类机器上也使用 Client 运行时编译器。因为历史上,在该组合下运行客户端程序的情况更多(如,交互应用)。
- 注2:只支持 Server 运行时编译器。
基于行为的调优
对于 并行收集器,Java SE 提供了两个 GC调优参数。它们基于应用程序的两个目标:最大暂停时间 和 吞吐量。可参考《The Parallel Collector》。(这两个选项在其它收集器中不可用。)需要注意的是这两个目标并不总是能达到。应用程序需要一个足够大的堆,至少能存放所有存活数据。此外,最小堆大小 可能会阻碍这些期望目标的达成。
最大暂停时间
暂停时间 是 GC停止应用程序 并 恢复不再使用的空间 的持续时间。“最大暂停时间目标”的目的就是为了限制这个暂停的最长持续时间。GC会维护这个暂停时间的平均值与方差。平均值是从开始运行时计算的,且会加权;最近暂停的权重更高。如果平均值加上方差 大于 最大暂停时间目标,就会被GC认为没有达到目标。
最大暂停时间目标可以通过命令行选项指定:
-XX:MaxGCPauseMillis=<nnn>
它会被解释为对 GC 的提示:期望暂停时间小于等于 毫秒。GC 会调整 堆大小 和 其它相关参数,以保持垃圾收集暂停时间小于秒。默认情况下,没有最大暂停时间目标。这些调整可能会导致频繁发生GC,从而降低应用程序的吞吐量。GC会试图优先满足任何暂停时间目标。其优先级高于吞吐量目标。尽管如此,某些情况下还是无法达成期望的暂停时间目标。
吞吐量
吞吐量是以 垃圾收集所花时间 和 其它时间(称为应用程序时间)(的比率)来衡量的。可通过命令行选项指定该目标:
-XX:GCTimeRatio=<nnn>
GC时间 与 应用程序时间 的比率为 1 / (1+) 。如,-XX:GCTimeRatio=19 表示设定的 GC时间目标为总时间的 1/20(5%)。
垃圾收集所花费的时间是收集新生代和老年代所耗时间之和。如果不满足吞吐量目标,GC会增加新生代和老年代的容量,以增加应用程序在垃圾收集操作之间的运行时长。
最小内存占用
如果吞吐量和最大暂停时间目标都达到了,那么GC会减小堆容量,直到其中一个目标不满足(总是吞吐量目标不满足)。然后解决未实现的目标。
调优策略
不要指定一个最大堆内存,除非你知道你需要一个比默认值更大的堆。
选择一个足以满足你的应用程序的吞吐量目标。
堆可能会增大或缩小,以满足指定的吞吐量目标。应用程序行为的改变可能导致堆增大或缩小。例如,当应用程序开始更快地分配内存时,为了保持相同的吞吐量,堆会增大。
如果堆增大到了最大值,但还未满足吞吐量目标,那说明这个最大值对此吞吐量目标来说太小。可以将最大堆大小设置为接近平台上物理内存总量,但又不会导致应用程序内存换页的某个值。然后重新运行应用程序。如果还是不能满足吞吐量目标,那说明对这个平台来说,在使用这些可用内存的情况下,这个吞吐量目标(即,应用程序时间目标)太高了。
如果可以满足吞吐量目标,但是部分暂停时间太长,那么可以指定一个最大暂停时间目标。指定一个最大暂停时间目标可能意味着无法满足吞吐量目标。因此需要选择一个对应用程序来说可接受的折中方案的值。
当GC试图满足存在竞争关系的目标时,堆的大小通常会发生波动。即使应用程序已经达到了一个稳定的状态,也会发生波动。吞吐量、最大暂停时间、最小占用内存 这几个目标之间存在竞争关系。吞吐量目标可能需要更大的堆,最大暂停时间和最小占用内存 都可能需要较小的堆。
相关推荐
Advances in Social & Occupational Ergonomics
Biomechanics in Ergonomics
计算机使用安全--Ergonomics---白领必备 你每天使用电脑超过2人小时吗?如果是,推荐下载!
Digital Human Models for Ergonomics 人体工程学数字人体模型.pdf
USCAR-25-REV3_2016 ERGONOMICS SPECIFICATION FOR ELECTRICAL CONNECTIONS.pdf
Research on Chinese Ancient and Modern Writing Habits Based on Ergonomics_withMarginNotes.pdf
2000年8月,国际人机工程学会(International Ergonomics Association)对本学科所下的定义为:人机工程学是研究人与系统中其他因素之间的相互作用,以及应用相关理论、原理、数据和方法来设计以达到优化人类和系统...
Handbook Of Control Room Design And Ergonomics A Perspective For The Future Second Edition Book
服务科学+服务体验工程方法指引-辅助器具与老年福祉科技-北大 北京大學人口研究所 Institute of Population Research 参考阅读资料 : 1. Faulkner, Alex (2009)...ings of the Human Factors and Ergonomics Society
Ergonomics: Study of how people physically interact with their work – fitting the job, the equipment and the work environment to the worker.
Spacemacs is a proposition of a complete new experience for Emacs focused on ergonomics, mnemonics and consistency. Spacemacs配置文件,已下载了初始化必须的packages,到手就能用
Mastered with the best of both worlds, VINYL’S modern digital lines combine with a vintage silhouette....temples and thermoplastic rubber sockets put ergonomics and durability onto the same track.
Chapter 16 Educational Ergonomics and the Future of the Mind Chapter 17 An Answer to the Math Problem Chapter 18 XQ Super Schools—Bolder Super School Project Chapter 19 Transfigurism: Glimpse into a ...
其发源学科和地域的不同,也引起了学科名称长期的多样并存,在英语中,主要有Ergonomics(欧洲)、Human Factors(美国)等,在汉语中,则还有"人类工效学"、"人类工程学"和"人体工学"。我国一般把"人类工效学"作为这个...
(8) 设备与系统 Equipment Equipment Equipment Equipment and and and and Systems Systems Systems Systems 提供各种系统设备的建置,管路和电线的配置以及电子零件配置等功能。 (9) 制造的数字化过程 制造的...
(8) 设备与系统 Equipment Equipment Equipment Equipment and and and and Systems Systems Systems Systems 提供各种系统设备的建置,管路和电线的配置以及电子零件配置等功能。 (9) 制造的数字化过程 制造的...
本文重点介绍了定义工业设计文献... 此外,顶级期刊的名称为Design Studies、International Journal of Industrial Ergonomics和International Journal of Design。 工业设计被提议作为一个新的 Web of Science 类别。
8. Making Exercise Pragmatic . . . . . . . . . 121 Exercising Your Brain 122 8.1 8.2 Taking Healthy Pomodoro Breaks 122 8.3 Keeping a Log 126 8.4 Playing Games with Your Health 127 8.5 Taking Your ...
These topics include humans’ physiological predispositions, exacerbation of current health conditions like obesity and diabetes, and the design and ergonomics of offices and chairs.To examine the ...
人体工程学(ergonomics)是一门将日常使用的东西设计为易于使用和实用性强的学科。 在2003年颁布的GB/T16260-2003(ISO9126-2001)《软件工程产品质量》质量模型中,提出易用性包含易理解性、易学习性和易操作性;即...