论坛首页 Java企业应用论坛

透过JVM看Exception本质

浏览 42095 次
该帖已经被评为良好帖
作者 正文
   发表时间:2011-01-05  
hatedance 写道
呵呵,自从sajia同学带头发了一篇又一篇包含字节码的帖子以后,许多同学在看不懂的情况下怒了,也开始学习底层。


说的好!都是sajia同学导致的。哈哈哈
0 请登录后投票
   发表时间:2011-01-05  
sdh5724 写道
kyfxbl 写道
看到这个帖子感到压力很大,这是为什么呢


有人研究机制
有人研究实现
有人研究测试
你只看帖子!

哈哈



这位大哥说得有道理,我现在确实还没接触到这块么,不会也很正常
0 请登录后投票
   发表时间:2011-01-07  
在自己的机子上测试了下 jdk1.5
每次结果都不一样,相差很大,其中更是出现如下结果,与楼主所说甚是不符啊,请楼主解释下原因。
建立对象:794837
建立异常对象:14435624
建立、抛出并接住异常对象:13600704

0 请登录后投票
   发表时间:2011-01-11  
这种微小的性能考虑,在每天有上亿次的访问的系统中就必须考虑,甚至还要了解JVM是如何运作,这样才能够做到性能的极致。
0 请登录后投票
   发表时间:2011-01-11  
性能问题是可以应用80 20原则的。对于性能优化,优化代码是一种手段,还有一些其它方式,比如:页面静态化、购买缓存服务等...
0 请登录后投票
   发表时间:2011-01-12  
pml346680914 写道
在自己的机子上测试了下 jdk1.5
每次结果都不一样,相差很大,其中更是出现如下结果,与楼主所说甚是不符啊,请楼主解释下原因。
建立对象:794837
建立异常对象:14435624
建立、抛出并接住异常对象:13600704


jdk 1.6

建立对象:559164
建立异常对象:7357032
建立、抛出并接住异常对象:7061238
1 请登录后投票
   发表时间:2011-01-30  
javacoreSZ 写道
IcyFenix 写道
看看反应如何,好的话明天再写一篇来小淌一下“C/C++会比Java语言快多少多少倍”这浑水,也是这2天由那几张判断字符串能不能用异常的帖子中看到的观点。


这个最好还是别写,坑太大了。
而且他们性能之间的差距并不是由c++ 或 java语言本身所带来的,而是由于他们的实际编译器/虚拟机在做代码生成的时候,对代码优化的程度所带来的。

所以你要写的话,也是要深入各主流cpp编译器来写,写得不好就口水战了。

楼主大大这坑还跳么?小的们还等着学习呢
小的琢磨,“同等开发成本”为前提来比较才有意义。不然C/C++总能写出更高效的
0 请登录后投票
   发表时间: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

金立的文档
0 请登录后投票
   发表时间:2011-03-23  
gdpglc 写道
LZ这样熟悉jvm的底层机制很是佩服。只是,这贴实在太专业,我的确云里雾里。估计没有相关知识的人也是够呛。不知LZ从事哪个行业,为何需要对JVM有如此的研究?的确很好奇,开发什么软件,需要这么深入jvm? 楼主不想回答,我也理解。


看了这篇文章后,对下面这贴,我只想对您说:杀鸡用牛刀。
http://www.iteye.com/topic/856221
0 请登录后投票
   发表时间:2011-03-27  
RednaxelaFX 难道是做openJDK开发的?对JVM底层如此了解。。我也只有在程序OOM的时候回去分析下dump文件
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics