`
RednaxelaFX
  • 浏览: 3015341 次
  • 性别: Icon_minigender_1
  • 来自: 海外
社区版块
存档分类
最新评论
文章列表
使用Oracle/Sun JDK来运行Java程序的时候,大家或许有用过jstat工具来观察GC的统计数据,例如上一篇日志里的 $ jstat -gcutil `pgrep -u admin java` S0 S1 E O P YGC YGCT FGC FGCT GCT 37.21 0.00 99.81 12.87 76.82 1767 196.843 3085 2998.088 3194.931 以前写过一帖说明jstat工具显示的读数与jvmstat计数器之前的关系:用Java获取ful ...
随便记一下。 今天有个应用说是full GC过于频繁。看了下发现执行的都是CMS GC,并不是真的stop-the-world的full GC。但确实是很频繁,几秒就触发一次。 堆的使用状况,eden/SS0/SS1的使用量都没啥特别的,old gen大概用了10%+,而perm gen用了70%+。光看空间占用量的话,都还达不到CMS的触发条件。. $ jstat -gcutil `pgrep -u admin java` 1s S0 S1 E O P YGC YGCT FGC FGCT GCT 37.2 ...
今天有朋友提到一个叫 ReflectASM的库,为Java环境提供高性能的反射操作支持。它的实现方式是动态代码生成。 以前我的一篇日志里写过,Oracle/Sun JDK6的反射方法调用的实现当中重要的一环就是动态代码生成。 但是今天的主角不是ReflectASM,而是Oracle/Sun JDK里的sun.misc.Unsafe类,以及这个类上的getInt(Object, long)方法: 引用/** * Fetches a value from a given Java variable. * More specifically, fetches a field or array ...
前一篇:观察NIO的direct memory使用量? 前一篇说的是在当前的Oracle/Sun JDK6上没啥好办法去监视NIO的direct memory使用量。不过这个问题在JDK7里其实已经有解决的。从JDK7 build 36开始就有了吧。 解决的方式就是:给NIO也带上JMX的监控API。这才是正道啊! 从JDK7版的java.nio.Bits源码里可以看到注册MXBean注册的代码。 相关的MXBean有以下两个: 1. objectName: java.nio:type=BufferPool,name=direct 2. objectName: java.nio:type= ...
前几天有同事问起,我本来印象中是有啥别的办法的,但想不起来了。 再看了看NIO相关部分的源码觉得貌似就这个办法靠谱(在Oracle/Sun的JDK上): StackOverflow: Looking up how much direct buffer memory is available to Java? 通过反射获取java.nio.Bits类里的maxMemory与reservedMemory字段来达到观察的目的。 用Groovy演示一下: D:\sdk\groovy-1.7.6\bin>groovysh Groovy Shell (1.7.6, JVM: 1.6.0_26) ...
有人问下面这段代码里,main()方法里的outer.new Inner()部分为什么会生成了一个对outer.getClass()的调用: public class Outer { public class Inner { } public static void main(String[] args) { Outer outer = new Outer(); Outer.Inner inner = outer.new Inner(); } } javac编译它生成的main方法的代码是: public static void main(java.lan ...
随着7月28日,也就是Java SE 7预定的发布日期越来越近,相关的一些规范也已得到或即将得到批准。 这里主要关注的是下面几个规范: JSR 336: Java™ SE 7 Release Contents JSR 901: Java™ Language Specification JSR 924: Java™ Virtual Machine Specification 新的Oracle官网Java规范页面:http://docs.oracle.com/javase/specs/index.html 另外可以通过JSR 336来获取Java SE 7的各种文档的不同版本。例如说其中的附录3 ...
打捞回复帖。嗯这无聊的语法问题… 原文地址:http://www.iteye.com/topic/1064881?page=6#2136913 lion1354 写道好吧看代码,把下面两段代码粘到eclipse中你就会知道了 public class Test { public static void main(String[] args) { if (true) { String i = new String("Test"); } } } 上面的编译正确 public class Test { public ...
昨天和今天。过了两天完全没有编程、完全没有JVM的生活。 不过与其说是“生活”,还不如说就是一直在家睡觉。 早上还是按着已经养成习惯的时间醒来,却没啥力气,脑袋也是一片昏沉。 现在的工作本身其实并没有多少压力,只要完成工作量的话估计连加班都不用吧。 但前段时间实在是太兴奋,工作内容变得跟自己兴趣一致,白天夜晚都高强度的投入到里面去。 最近一个月平均下来每天睡眠的时间也就4-5小时。少的时候就1-2小时。 结果今天吊水去了。刚吊完回来。明天还有一次。 就这样钱包里的4张红老毛子就没了。交完钱还想着“这次好便宜”…去年端午节摔一跤就损失了600左右。 索性就趁此机会休息一下吧。诶。
继续打捞站内信。 同学F 写道在java中的数组访问,举个例子,对于数组int[][][] arry = new int[2][3][4],我从字节码上看,虚拟机对某个arry中的某个元素如arry[1][1][3]的访问,似乎是先获取arry[1]的引用,然后再获取arry[1][1]的引用,再获取数据arry[1][1][3],如果这个过程我没有理解错的话,那么虚拟机是不是对这些“中间引用”(arry[1]、arry[1][1]之类的)创建相应的类型,否则单凭这些引用如何进行数组下表的越界校验? Java和JVM里本来就没有所谓的“矩形数组”的概念,多维数组只有“数组的数组”(array ...
上一篇:通过JMX控制在full GC前后做heap dump 想像一个Java进程在远程服务器上突然遇到频繁full GC的状况。我们只是想动态的改变HeapDumpBeforeFullGC与HeapDumpAfterFullGC参数来获取full GC前后的heap dump,并不想在侵入到Java程序内去通过代码 ...
后一篇:通过jinfo工具在full GC前后做heap dump 有时候我们想知道一个Java程序在一次full GC的时候到底回收了哪些对象。特别是当full GC看起来很频密但系统看起来却又没有内存泄漏的时候,了解究竟是哪些对象引致了这些GC会对调优有帮助。 做了个简单的例子,讲解一种简单的办法在full GC的前后得到heap dump。本文说的办法只能在HotSpot VM上使用;其它JVM要达到同样的目的或许有其它做法,回头有机会再说。 (同样的工作在JRockit或者J9上做似乎都更容易些… ) ======================================== ...
继续打捞一些零散的文字。这次是ItEye站内信里的一段对话。 下面是问题和回复内容,带补充。 =================================================================== 问题 月初的时候收到这样一个问题: 同学F 写道请教下,识jvm堆栈中一个数据 ...
把先前在论坛回复的一些帖打捞进来。这篇的原帖是:HotSpot VM 内存堆的两个Survivor区 下面是回复内容,带补充。 ================================================================= kingkan 写道请教下前辈们: 1.手动System.gc()与JVM自动gc有什么根 ...
把先前在论坛回复的一些帖打捞进来。这篇的原帖是:JAVA6可以使用字符串累加 下面是回复内容,带补充。 ================================================================= javabkb 写道听过sajia老师讲的视频 记得1.4后的hotspot就有这个编译优化效果了 << 我肯定没有这样说过…这帖里说的东西都跟HotSpot(或者其它JVM实现)一点关系都没有,还在Java源码级编译器层次上… javabkb 写道但是一直有个问题,即使是编译优化了,用加号拼接的效率还是不如用stringbuilder的 < ...
Global site tag (gtag.js) - Google Analytics