statcvs OutOfMemory Error

本次共统计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、拆分模块可以减少内存占用。

你可能感兴趣的:(statcvs OutOfMemory Error)