- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
这是我的 JVM 参数:
> /usr/local/java/bin/java -Xloggc:log/gc.log -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:PermSize=64m -XX:MaxPermSize=64m -Xss128K -server -Xmn1024m -Xms3027m -Xmx3027m -Dresin.home=/usr/local/resin
我用的是Resin,上面是Resin启动JVM的参数,下面是我用jstat -gcutil pid 1000 1000时的GC输出
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 1.60 46.21 25.62 21.69 72639 941.082 31 0.275 941.357
1.51 0.00 51.91 25.63 21.69 72640 941.093 31 0.275 941.368
0.00 1.87 62.96 25.64 21.69 72641 941.104 31 0.275 941.379
1.51 0.00 86.39 25.65 21.69 72642 941.114 31 0.275 941.389
0.00 1.56 94.28 25.65 21.69 72643 941.126 31 0.275 941.401
0.00 1.45 5.03 25.67 21.69 72645 941.146 31 0.275 941.421
1.74 0.00 18.76 25.68 21.69 72646 941.158 31 0.275 941.433
0.00 1.85 37.51 25.69 21.69 72647 941.169 31 0.275 941.443
1.59 0.00 53.58 25.70 21.69 72648 941.180 31 0.275 941.455
0.00 1.74 74.02 25.71 21.69 72649 941.192 31 0.275 941.467
minor GC 大约每秒一次,我感觉很频繁,因为我新的 Edanz size 是 1g,所以为什么这么频繁还是这很正常?
最佳答案
要么您的 Eden 大小不是 1 GB,要么您正在制造大量垃圾。由于您似乎没有设置 Eden 大小,因此怀疑它比您想象的要小得多。
尝试使用 jstat -gccause
来查看大小。
我怀疑你一直在阅读http://www.caucho.com/resin-3.0/performance/jvm-tuning.xtp它错误地指出 -Xmn
设置了 Eden 空间。 ;)
-Xmx
选项设置最大总堆大小(新旧)
-Xmn
选项设置年轻代的大小,包括伊甸园空间和两个幸存者空间。由于您的幸存者空间似乎不是很满,我怀疑它们占了年轻一代 1 G 的大部分。
http://www.oracle.com/technetwork/java/javase/tech/exactoptions-jsp-141536.html
尝试将 -XX:SurvivorRatio=
设置为 10 之类的值,这 1 GB 中的大部分将是 Eden 空间。
http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
关于java - 为什么minor GC这么频繁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12277594/
我有一个包含值的字符串数组(duh...)。 有没有一种简单的方法可以获取出现次数最多的条目?有点像 values[37].getMostOften(); 干杯:) 最佳答案 您可以使用GroupBy
我目前正在将一款用 C#(适用于 Windows Phone)开发的游戏移植到 Java (Android)。 我们在 Java 版本中遇到了内存问题,在分析之后,似乎是由于内存中的大量 String
对于播放音频文件的 iPhone 应用程序,我正在开发一个系统来跟踪用户在他们听过的任何一集中的进度(例如,他们听 file1 的前 4:35,然后开始另一个文件,然后返回到文件 1,它从 4:35
如果您按下 UIbutton 显示 UITextView,将请求代码 Ì 再次按下 UIbutton 再次显示 UITextView :/ 最佳答案 .h 文件中只有一个 int 变量,如下所示..
我在 Application_End 上处理的项目中使用临时数据库: protected void Application_End() { if (_db != null) _db.Dispo
我是一名优秀的程序员,十分优秀!