java 板


LINE

有兴趣狗了一下找到一篇教怎麽侦测跟处理的文章, https://blogs.oracle.com/jrockit/entry/repost_tips_and_tricks_for_dealing_with_a_fragmented_java_heap 缩:http://ppt.cc/~D3m 简单摘要如下 推荐侦测工具: JRockit Mission Control Memory Leak Detector 1. Increase the heap size 这...有钱好办事 @@? 2. Use a generational GC 用不同的 GC 策略,用参数 -Xgc:gencon 或 -Xgc:genpar 3. Tune compaction parameters 调大 compaction ratio (e.g. -XXcompactratio=10) 早点做 defragment 4. Don't allocate memory 太神妙了,光看这句会让人觉得是在说什麽屁话 0rz 请参考另一篇文章。 https://blogs.oracle.com/hirt/entry/unorthodox_uses_of_the_memory 缩:http://ppt.cc/SLjy 5. Avoid allocating large objects 少用 Array 等大型物件,(例如 ArrayList 可能改用 LinkedList?), 避免巨大的 String 也就是 char array (也改用 char linked list?)。 6. Allocate objects with similar lifespan in chunks 将一个操作要用到的资料在操作结束前都维持住不清, 让它们之後可以一口气同时被清掉,减少小的空洞。 ※ 引述《AmosYang (Zzz...)》之铭言: : ※ 引述《PsMonkey (痞子军团团长)》之铭言: : : 在花了一天对付另一个 [Heisenbug]:每当我快抓到原因,它就会变了样; : 闲聊瞎扯一下 :> : 前几个月正好处理过一个类似的情形: 一个 multithreaded 的 .NET 程式不定时的 : 炸 OOM exception : 对付陈宫,只能用箭;对付 Heisenbug, 除了 process dump analysis 外 : 大概没什麽好办法 : 参考 : * http://blogs.msdn.com/b/dotnet/archive/2009/10/15/automatically-capturing-a-dump-when-a-process-crashes.aspx : * http://blogs.msdn.com/b/pranavwagh/archive/2009/06/09/how-to-take-the-dump-for-a-process-which-crashes-randomly.aspx : * http://technet.microsoft.com/en-us/sysinternals/dd996900.aspx : * http://stackoverflow.com/questions/1134048/generating-net-crash-dumps-automatically : * google jvm crash dump : 通常来说, OOM 算是好解的问题,因为 OOM 多半来自 memory leak + loop : 是故 heap 里多半会散布着大量相似的物件, 只要能辨认这些物件 : 通常反推回程式码里的问题点就没那麽难 : 然而,有另一型的 OOM, 很久之前有稍微提过, 是属於 architectural 的问题, : 就很难解 :( 因为 OutOfMemory 有时指的不是「记忆体的量不够」 : 而是「没有连续够大块的记忆体」 : 该案例里,就是大量地创造、释放大型物件 ( 大型物件会取在 .NET gen 2 heap ) 上 : 使得 gen 2 heap 的「连续可用空间」变得支离破碎, : 而「可用空间总量」看起来还剩很多 : 打个比方,就像一立方公尺的木条跟一立方公尺的木屑都是一立方公尺的木料 : 但後者没办法拿来盖房子; 在这种情形下,不管是 .NET 还是 Java, : 都只会炸 OOM, 不知道为什麽不能设计成改炸 OutOfContinuousMemory 这种的... : 最近几期的 MSDN 杂志里提到最新的 .NET GC 应该可以避免 fragmentation 发生 : 不知道最新的 Java 8 在这方面有没有相对应的改进 : 这种 OOM 就很难解…最快的解法就是装傻... :D : 总结: 写 server 程式时,若能把该平台上的 debug 工具摸熟,常会有意想不到的妙用 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.164.145.70
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/java/M.1398555186.A.F00.html
1F:→ lovdkkkk:5:假如你有一些超大的东西,把它们拆小 04/27 07:34
2F:→ lovdkkkk:6:假如你同时要用一堆小东西,把它们装在一个大箱子 04/27 07:36
3F:推 AmosYang: 有趣的方向 :D 04/27 08:19
4F:→ bitlife:加一个 7.如果可能的话,死亡并让下个转世继续执行 XD 04/27 10:54
5F:推 Killercat:8. 会造成破碎的部分改用daemon来写 用完就让它投胎 04/27 12:53







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP