Java Try-Catch 对于性能的影响

直观上我感觉 try catch 对于程序有性能上的影响,但是以下的实验可以说明部分情况下try - catch 只是逻辑上的影响,与性能无太大的拖累

  public static void main(String[] args) throws Exception {

        int n = 10000;

        for (int j = 0; j < 20; j++) {
            System.out.println("case" + (j + 1));
            long start = System.currentTimeMillis();
            for (int i = 0; i < n; i++) {
                try {
                    testProcess();
                } catch (Exception e) {
                    // TODO: handle exception
                }
            }
            System.out.println(System.currentTimeMillis() - start);

            start = System.currentTimeMillis();
            for (int i = 0; i < n; i++) {

                testProcess();

            }
            System.out.println(System.currentTimeMillis() - start);
        }

    }

    public static void testProcess() {
        int c = 1;
        for (int i = 1; i < 10000; i++) {
            c *= i;
            if (c % 2 == 0) {
                c += i;
            }
            if (i == 0) {
                throw new RuntimeException();
            }
        }
    }

结果:

case1
305
297
case2
285
307
case3
312
312
case4
306
310
case5
294
296
case6
286
302
case7
275
291
case8
276
283
case9
287
291
case10
256
271
case11
256
283
case12
256
280
case13
263
287
case14
262
281
case15
254
279
case16
254
281
case17
250
275
case18
262
295
case19
270
282
case20
254
288
时间: 2025-01-11 13:28:02

Java Try-Catch 对于性能的影响的相关文章

JAVA 异常对于性能的影响

陶炳哲 - MAY 12, 2015 在对OneAPM的客户做技术支持时,我们常常会看到很多客户根本没意识到的异常.在消除了这些异常之后,代码运行速度与以前相比大幅提升.这让我们产生一种猜测,就是在代码里面使用异常会带来显著的性能开销.因为异常是错误情况处理的重要组成部分,摒弃是不太可能的,所以我们需要衡量异常处理对于性能影响,我们可以通过一个实验看看异常处理的对于性能的影响. 实验 我的实验基于一段随机抛出异常的简单代码.从科学的角度,这并非完全准确的测量,同时我也并不了解HotSpot 编译

java编程中的性能提升问题

java编程中的性能提升 软件产品犹如一栋大楼,大楼在建设初期,会有楼房规划,建筑构想,打牢地基,后面才是施工人员进行进行实质性的建设.要保证软件产品的高质量,优秀的架构,优秀的产品设计,是产生高质量的前提.同时,没有过硬的编码实现,一样得不到预期的效果.纵观现在的产品,产品架构没多大差别,基本运用基线版本进行局点定制.而系统中的一些功能性能常常不过关,问题往往就出在编码实现上.这块是开发人员在开发过程中需要注意的.在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身.养成良

java 编程时候的性能调优

一.避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快. 例子: import java.util.vector; class cel { void method (vector vector) { for (int i = 0; i < vector.size (); i++) // violation ; // ... } } 更正: class cel_fixed { void metho

Java内存泄露及性能调优

内存泄漏及解决方法 1.系统崩溃前的一些现象:每次垃圾回收的时间越来越长,由之前的10ms延长到50ms左右,FullGC的时间也有之前的0.5s延长到4.5sFullGC的次数越来越多,最频繁时隔不到1分钟就进行一次FullGC年老代的内存越来越大并且每次FullGC后年老代没有内存被释放 之后系统会无法响应新的请求,逐渐到达OutOfMemoryError的临界值. 2.生成堆的dump文件 通过JMX的MBean生成当前的Heap信息,大小为一个3G(整个堆的大小)的hprof文件,如果没

java内存回收提高性能

这是本人的第二篇文章.通过上一篇文章的总结后,我觉得有必要对java内存回收问题再详细叙述一下.因为大多数javaer估计都是习惯了自己的java编码风格,尤其是对象声明等,想在哪声明就在哪声明,之后就不管了,因为他知道java有一个很好的内存管理机制,那就是GC(垃圾回收机制).其实这对一般的java程序猿来说这是无可厚非的.呵呵...因为我也是这样过来的.然而,随着接触的项目庞大和性能的要求,我们开始审视自己写的代码,看看有没有一些代码需要优化,或者其他编码风格需要改变从而对系统的性能提升有

几款Java模板引擎的性能评测

参评的几款模板引擎为:XMLTemplate(简称XT)Velocity(简称VT)CommonTemplate(简称CT)FreeMarker(简称FT)Smarty4j(简称ST)直接的java代码 以下所有测评的结果单位都是ms 性能评测考虑以下几个方面:变量输出/循环/分支,这三大类调用构成了普通模板80%以上的功能.测试方法为双层循环,输出的中间体是一个空的不执行任何操作的Writer类,尽可能的减少模板外的性能影响因素,基本的逻辑伪代码描述如下:for (int i = 0; i <

MySQL自身对性能的影响

MySQL体系结构 想要了解MySQL自身对性能的影响,就需要先熟悉MySQL的体系结构和常用的存储引擎.MySQL并不完美,却足够灵活,能够适应高要求的环境,例如Web类应用.同时,MySQL既可以嵌入到应用程序中,也可以支持数据仓库.内容索引和部署软件.高可用的冗余系统.在线事务处理系统(OLTP)等各种应用类型. MySQL最重要.最与众不同的特性是它的存储引擎架构,这种架构的设计将查询处理(Query Processing)及其他系统任务(Server Task)和数据的存储/提取相分离

Java 8 Stream的性能到底如何?

那么,Stream API的性能到底如何呢,代码整洁的背后是否意味着性能的损耗呢?本文我们对Stream API的性能一探究竟. 为保证测试结果真实可信,我们将JVM运行在 -server 模式下,测试数据在GB量级,测试机器采用常见的商用服务器,配置如下: OSCentOS 6.7 x86_64CPUIntel Xeon X5675, 12M Cache 3.06 GHz, 6 Cores 12 Threads内存96GBJDKjava version 1.8.0_91, Java HotSp

zt:tcpdump抓包对性能的影响

https://blog.csdn.net/dog250/article/details/52502623 一直以来,提到这个话题,大家更多的关注的是tcpdump抓包本身的性能,比如能不能应付几十万的pps,能否在万兆网络上自运自如...我们现在知道,这些问题的答案都是否定的,即“不能”!因此你应该去关注netmap高性能抓包方案以及DPDK这样的东西... 但本文不谈这些,本文谈的是被抓取数据包以外的东西,即tcpdump对那些未被命中抓包规则的数据包性能的影响. 接口和实现 不得不说,有的

smarty对网页性能的影响--开启opcache

在上一篇<smarty对网页性能的影响>中,默认没有开启opcache,于是我安装了一下zend opcache扩展,重新实验了一下,结果如下: 有smarty 用apache的ab命令进行压力测试,并发10个,不算大:同时用sar命令进行cpu利用率的统计.命令如下: ./ab -c 10 -n 100000 http://cq01-rdqa-dev072.cq01.baidu.com:8008/index.php sar -u 2 1000 >/tmp/smarty.sar &