锁定老帖子 主题:透过JVM看Exception本质
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-01-05
hatedance 写道 呵呵,自从sajia同学带头发了一篇又一篇包含字节码的帖子以后,许多同学在看不懂的情况下怒了,也开始学习底层。
说的好!都是sajia同学导致的。哈哈哈 |
|
返回顶楼 | |
发表时间:2011-01-05
sdh5724 写道 kyfxbl 写道 看到这个帖子感到压力很大,这是为什么呢
有人研究机制 有人研究实现 有人研究测试 你只看帖子! 哈哈 这位大哥说得有道理,我现在确实还没接触到这块么,不会也很正常 |
|
返回顶楼 | |
发表时间:2011-01-07
在自己的机子上测试了下 jdk1.5
每次结果都不一样,相差很大,其中更是出现如下结果,与楼主所说甚是不符啊,请楼主解释下原因。 建立对象:794837 建立异常对象:14435624 建立、抛出并接住异常对象:13600704 |
|
返回顶楼 | |
发表时间:2011-01-11
这种微小的性能考虑,在每天有上亿次的访问的系统中就必须考虑,甚至还要了解JVM是如何运作,这样才能够做到性能的极致。
|
|
返回顶楼 | |
发表时间:2011-01-11
性能问题是可以应用80 20原则的。对于性能优化,优化代码是一种手段,还有一些其它方式,比如:页面静态化、购买缓存服务等...
|
|
返回顶楼 | |
发表时间:2011-01-12
pml346680914 写道 在自己的机子上测试了下 jdk1.5
每次结果都不一样,相差很大,其中更是出现如下结果,与楼主所说甚是不符啊,请楼主解释下原因。 建立对象:794837 建立异常对象:14435624 建立、抛出并接住异常对象:13600704 jdk 1.6 建立对象:559164 建立异常对象:7357032 建立、抛出并接住异常对象:7061238 |
|
返回顶楼 | |
发表时间:2011-01-30
javacoreSZ 写道 IcyFenix 写道 看看反应如何,好的话明天再写一篇来小淌一下“C/C++会比Java语言快多少多少倍”这浑水,也是这2天由那几张判断字符串能不能用异常的帖子中看到的观点。 这个最好还是别写,坑太大了。 而且他们性能之间的差距并不是由c++ 或 java语言本身所带来的,而是由于他们的实际编译器/虚拟机在做代码生成的时候,对代码优化的程度所带来的。 所以你要写的话,也是要深入各主流cpp编译器来写,写得不好就口水战了。 楼主大大这坑还跳么?小的们还等着学习呢 小的琢磨,“同等开发成本”为前提来比较才有意义。不然C/C++总能写出更高效的 |
|
返回顶楼 | |
发表时间:2011-02-14
agapple 写道 其实LZ可以再往下细扣一下,为啥new Exception会慢,profile一看主要就是慢在一个native方法调用上fillInStackTrace。
该方法的主要作用就是获取当前线程执行栈,用于日志记录和以后分析所用 一般针对业务逻辑,其实可以不太关注具体的线程调用栈,我们大家应该关注的是业务异常message和code 所以我还是比较喜欢用异常来进行逻辑控制和返回,首先代码风格上会比较清晰 可以参考下:复写了RumtimeException的一个native方法,在测试过程中性能几乎就和if..else一样了 public static class ServiceException extends RumtimeException { @Override public Throwable fillInStackTrace() { return this; } } 具体的测试分析,可以看下我同事的测试文档 : http://www.blogjava.net/stone2083/archive/2010/07/09/325649.html 金立的文档 |
|
返回顶楼 | |
发表时间:2011-03-23
gdpglc 写道 LZ这样熟悉jvm的底层机制很是佩服。只是,这贴实在太专业,我的确云里雾里。估计没有相关知识的人也是够呛。不知LZ从事哪个行业,为何需要对JVM有如此的研究?的确很好奇,开发什么软件,需要这么深入jvm? 楼主不想回答,我也理解。
看了这篇文章后,对下面这贴,我只想对您说:杀鸡用牛刀。 http://www.iteye.com/topic/856221 |
|
返回顶楼 | |
发表时间:2011-03-27
RednaxelaFX 难道是做openJDK开发的?对JVM底层如此了解。。我也只有在程序OOM的时候回去分析下dump文件
|
|
返回顶楼 | |