1

我们有一个使用 glassfish 的 java 系统,因为在一些小型 pc 中系统运行缓慢,我们决定使用 netbeans 分析器,它向我们显示了以下信息:

Threads: 91    
Loaded Classes: 14.186 (max)    
Total Memory: 282 MB    
Used Memory: 194 MB    
Time Spent in GC: 0%    
Surviving Generations: 79%    

Detail:    
Total bytes: 109.430.481    
Total classes: 14.603    
Total instances: 1.655.029    
Classloaders: 433    
GC roots: 3.757    
Number of objects pending for finalization: 0    

Environment:    
OS: Windows Vista (6.0) Service Pack 2    
Architecture: x86 32bit    
Java Home: C:\Program Files\Java\jdk1.7.0_03\jre    
Java Version: 1.7.0_03    
JVM: Java HotSpot(TM) Client VM (22.1-b02, mixed mode)    
Java Vendor: Oracle Corporation    

Head Walker: (High Value)    
Class: String    
Instances: 237.083    
Instance size: 24    
Total size: 5.689.992    
Retained size: 22.755.966

使用我们系统的库是:

Struts 2.3.1    
Spring 3.0.6    
AspectJ 1.7.3    
Jasper Report 5.1    
Cors Filter    
Poi 3.7    
Itext 2.1.7    
Postgresql 9.1    
commons-lang 3-3.1   
commons-pool 1.5.5    
commons-dbcp 1.4

我们也遵循内存图表中的字符串类,大多数内存消耗在 Xwork (struts) 和 Aspectj 库使用的类中

我们的问题是:

1- 当大部分消耗都在库中时,如何降低 CPU 和内存消耗?

2- 我可以在系统上做哪些其他速度改进?

4

0 回答 0