67,515
社区成员
发帖
与我相关
我的任务
分享
String str1;String str2;String str3; ..........String strN;
String str = str1 + str2 + str3 + ......... + strN;
以上代码,会在内存中产生 N+1个对象,实际最后只有一个对象是有用的,假如N=10,每个字符串占1K,
那么这段代码至少需要(1 + 2 + 3 + ..... + N + (N+1))K的内存,假如堆内存只有20K,则这段代码运算就需要好几次full gc,而full gc非常消耗系统资源(相对而言)。
另外,多查代码,有没有死循环处理字符串的情况。有没有集中处理大量字符串的情况。
[/qu]
现在根本不执行fullgc Minor gc也不频繁内存使用还不到2g
String str1;String str2;String str3; ..........String strN;
String str = str1 + str2 + str3 + ......... + strN;
以上代码,会在内存中产生 N+1个对象,实际最后只有一个对象是有用的,假如N=10,每个字符串占1K,
那么这段代码至少需要(1 + 2 + 3 + ..... + N + (N+1))K的内存,假如堆内存只有20K,则这段代码运算就需要好几次full gc,而full gc非常消耗系统资源(相对而言)。
另外,多查代码,有没有死循环处理字符串的情况。有没有集中处理大量字符串的情况。