本次共统计9个配置库,其中8个配置库统计成功,1个配置库统计失败,采用不同方式调试后成功,详细统计结果如下:
一、 AccessStat 、 ***_oper、***_800 、***_ocs 这4个配置库.通过执行命令java -jar statcvs.jar -output-dir直接生成相应报表。
二、 zswb-com 、netsife 、ZSHOP、opermanage 这4个配置库. 在运行命令时加参数-mx800m,统计代码没有报错,报表生成;
三、对于WebShop3_RF配置库,我使用了以下几种方法:
(一)、根据内存情况统计:
32位操作系统下:
1、 统计代码不成功(XP环境下): 在运行命令时加参数-mx800m 报“OutOfMemoryError.Try running java with the -mx option (e.g. -mx128m for 128Mb).” 的错误。
2、 统计代码不成功(XP环境下):在运行命令时加参数-mx1300m 报“OutOfMemoryError.Try running java with the -mx option (e.g. -mx128m for 128Mb).”的错误。
3、统计代码不成功(win7环境下):在运行命令时加参数-mx1700m 报“OutOfMemoryError.Try running java with the -mx option (e.g. -mx128m for 128Mb).”的错误。
64位操作系统下:
1、统计代码不成功(rhel4): 在运行命令时加参数-mx1500m 报“OutOfMemoryError.Try running java with the -mx option (e.g. -mx128m for 128Mb).” 的错误。
2、 统计代码成功(rhel4): 在运行命令时加参数-mx2800m 统计代码无报错信息,报表生成。
3、 统计代码成功(rhel4): 在运行命令时加参数-mx3200m 统计代码无报错信息,报表生成。
(二)、缩短log日志日期间隔时间统计
1、统计代码不成功(季度): 在运行命令时加参数-mx1300m 统计10年4季度的代码量,报“OutOfMemoryError.Try running java with the -mx option (e.g. -mx128m for 128Mb).” 的错误。
2、统计代码不成功(季度): 在运行命令时加参数-mx1300m 统计11年2季度的代码量,报“OutOfMemoryError.Try running java with the -mx option (e.g. -mx128m for 128Mb).” 的错误。
3、统计代码不成功(单月): 在运行命令时加参数-mx1300m 统计10年10月的代码量,报“OutOfMemoryError.Try running java with the -mx option (e.g. -mx128m for 128Mb).” 的错误。
4、统计代码不成功(一天): 在运行命令时加参数-mx1300m 统计10年10月1日的代码量,报“OutOfMemoryError.Try running java with the -mx option (e.g. -mx128m for 128Mb).” 的错误。
由于此方法都不成功,故未采用。
(三)、把配置库拆分,按模块统计
统计代码成功: 在运行命令时加参数-mx1300m ,统计代码无报错信息,报表生成。
注释:
我在百度文库 http://wenku.baidu.com/view/77ec7efafab069dc50220187.html 中找到关于JDK内存设置大小限制的文章。其中写道:
JDK调用内存大小有三方面限制:
1. 相关操作系统的数据模型(32-bit还是64-bit)限制;
2. 系统可用虚拟内存限制;
3. 系统可用物理内存限制;
32位操作系统下,一般限制在1.5G-2G;64位操作系统无限制.64位JDK可利用更多内存,在内存是瓶颈时64位操作系统下的JDK存在绝对优势。
介于上述配置库的代码统计结果,得出以下几点结论:
1、32位操作系统下,jdk调用的内存一般限制在1.5G-2G。32位XP系统下,jdk调用的内存不超过1400M。
2、如果jdk调用的内存超过1500M,则转换到64位操作系统上进行。64位操作系统无限制,64位JDK可利用更多内存,在内存是瓶颈时,64位操作系统下的JDK存在绝对优势。
3、统计代码时报“OutOfMemoryError.Try running java with the -mx option (e.g. -mx128m for 128Mb)” 错误是内存不足造成的。
4、统计代码时缩短log日志日期间隔时间对减少内存占用的作用不大。
5、拆分模块可以减少内存占用。