Eclipse的Debug模式和Run模式性能差异

最近在做的项目中使用了sitemesh和urlrewriter,web.xml中又多了几个过滤器,因为自己刚开始在项目中使用urlwriter,而总觉得网上的一些介绍的教程都比较肤浅,不够深入,而且都是你抄我的,我转载你的,所以习惯了自己debug看源码,来学怎么使用。

于是悲剧放生了,页面请求的时间以前在100毫秒左右就渲染出来了,在debug模式下居然要3-4秒,我起初以为是OpenSessionInViewFilter关闭session过慢或者是测试的数据库H2 Database性能不稳定造成的,其实不是这样

原来是因为我在OutBoundRule类的核心处理逻辑上加了断点,而且是条件断点,而每个请求基本上都会经过这个类来判断是否符合outbound的规则.而我测试的页面基本不满足那个条件断点,所以也没停下来,没引起我的注意。


最后我在debug模式下把所有断点去掉,这下性能和运行模式没多大差异了,其实不难想象,eclipse的debug模式为了支持条件断点肯定做了不少工作的,这样势必会影响性能。

这个东西也没必要去深究它的原理,知道就行了,在此记录下,以方便和我同样经历的人做个参考。


你可能感兴趣的:(其他)