垃圾收集器会自动回收内存以供重复使用,但需要进行性能调优。
Java
垃圾收集:
•
在垃圾收集过程中,活动对象会被追踪,而其他所有内容都会被指定为垃圾,并将内存返
回至可用内存池。
•
垃圾收集器必须暂停执行应用程序,以确保对象树的完整性。
•
找到的活动对象越多,暂停时间就越长,这样可能会影响到性能。
• Windchill
配置助手
(WCA)
可用于设置垃圾收集并行线程的数量。
–
并行垃圾收集线程数
= CPU
内核
/JVM
的数量
![](https://i-blog.csdnimg.cn/blog_migrate/51ba2edf994ef66dbbcfea118db2e6c8.png)
服务器端
Java
垃圾收集功能使得
Windchill (Java
应用程序
)
不必明确担心内存分配和取消分配问
题,即可创建新对象,这是因为垃圾收集器会自动回收内存以供重复使用。在垃圾收集过程中,活
动对象会被追踪,而其他所有内容都会被指定为垃圾,并将内存返回至可用内存池。
Java
垃圾收集可消除内存泄漏和其他与内存相关的问题;但是,可能会引入一些与性能相关的问
题。因此,垃圾收集需进行优化才能获得最佳性能。
垃圾收集器必须暂停执行应用程序,以确保对象树的完整性。找到的活动对象越多,暂停时间就越
长,这对响应时间和吞吐量有直接影响。
Java
默认
JVM
收集器利用多个
CPU
和线程的并行执行
来缩短完整垃圾收集的暂停时间。尽管在此期间,
Windchill
线程保持完全暂停状态,但垃圾收集
可在很短的时间内完成,从而提高了性能。
Windchill
在单个系统上使用多个
JVM
。优化允许每个
JVM
在完整垃圾收集过程中使用的线程数可
降低处理器争用和垃圾收集费用。
WCA
可用于设置垃圾收集并行线程的数量。
您可以使用以下公式计算并行线程的数量:
• CPU
内核
/JVM
的数量
例如:
•
系统具有
24
个
CPU
内核
•
共有
5
个
JVM
– 1
个服务器管理器、
3
个方法服务器、
1
个后台方法服务器
•
垃圾收集线程数
(24/5) = 4.8
•
去掉小数部分,将最终值改为
4
。
设置垃圾收集线程数时,存在两个其他条件:
•
如果最终值大于
8
,则使用
8
。
•
如果最终值小于
1
,则使用
1
。