我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JAVA异常对性能有什么影响

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JAVA异常对性能有什么影响

这篇文章主要介绍“JAVA异常对性能有什么影响”,在日常操作中,相信很多人在JAVA异常对性能有什么影响问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JAVA异常对性能有什么影响”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

在对OneAPM的客户做技术支 持时,我们常常会看到很多客户根本没意识到的异常。在消除了这些异常之后,代码运行速度与以前相比大幅提升。这让我们产生一种猜测,就是在代码里面使用异 常会带来显著的性能开销。因为异常是错误情况处理的重要组成部分,摒弃是不太可能的,所以我们需要衡量异常处理对于性能影响,我们可以通过一个实验看看异 常处理的对于性能的影响。

实验

我的实验基于一段随机抛出异常的简单代码。从科学的角度,这并非完全准确的测量,同时我也并不了解HotSpot 编译器会对运行中的代码做何动作。但无论如何,这段代码应该能够让我们了解一些基本情况。


JAVA异常对性能有什么影响

结果很有意思:抛出与捕获异常的代价似乎极低。在我的例子里,大约是每个异常 0.02 毫秒。除非你真的抛出太多异常(我们指的是 10  万次或者更多),否则这一点基本都可忽略。  尽管这些结果显示出异常处理本身并不影响代码性能,但却并未解决下面这个问题:异常对性能的巨大影响该由谁负责?

我明显遗漏了什么重要的问题。

重新想了一下,我意识到自己遗漏了异常处理的一个重要部分。我没考虑到异常发生时你做了什么。在多数情况下你很有可能不仅仅是捕获异常!而问题就在 这里:一般情况下,你会试图对问题进行补充,并让应用在最终用户那里仍能发挥功能。所以我遗漏的就是:“”为了处理异常而执行的补充代码“”。按照补充代 码的不同,性能损失可能会变得相当显著。在某些情况下这可能意味着重试连接到服务器,在另一些情况下则可能意味着使用默认的回滚方案,而这种方案提供的解 决办法肯定会带来非常差劲的性能。对于我们在很多情况下看到的行为,这似乎给出了很好的解释。

不过我却不觉得分析到这里已经万事大吉,而是感到这里还遗漏了别的什么东西。

Stack trace

对此问题,我仍颇为好奇,为此监视了收集 strack trace 时情况性能有何变化。

经常发生的情况应该是这样的:记下异常及其栈轨迹,尝试找出问题到底在哪。

为此我修改了代码,额外收集了异常的 strack trace 。这让情况显著改变。对异常的 strack trace  的收集,其性能影响要比单纯捕获并抛出异常高出10倍。因此尽管 strack trace  有助于理解哪里发生了问题(有可能还有助于理解为何发生问题),但却存在性能损失。 由于我们谈论的并非一条 strack  trace,所以此处的影响往往非常之大。 多数情况下,我们都要在多个层次上抛出并捕获异常。 我们看一个简单的例子: Web  服务客户端连接到服务器。首先,Java  库级别上存在一个连接失败异常。此后会有框架级别上的客户端失败异常,再以后可能还会有应用层次上的业务逻辑调用失败异常。到现在为止,总共要搜集三条 strack trace。 多数情况下,你都能从日志文件或者应用输出中看到这些 strack trace,而写入这些较长的strack trace 往往也会也带来性能影响。

到此,关于“JAVA异常对性能有什么影响”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JAVA异常对性能有什么影响

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JAVA异常对性能有什么影响

这篇文章主要介绍“JAVA异常对性能有什么影响”,在日常操作中,相信很多人在JAVA异常对性能有什么影响问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JAVA异常对性能有什么影响”的疑惑有所帮助!接下来,请跟
2023-06-17

JAVA异常是否对于性能有影响

在对OneAPM的客户做技术支持时,我们常常会看到很多客户根本没意识到的异常。在消除了这些异常之后,代码运行速度与以前相比大幅提升。这让我们产生一种猜测,就是在代码里面使用异 常会带来显著的性能开销。因为异常是错误情况处理的重要组成部分,摒
2023-06-16

JAVA异常是不是对性能有影响

这篇文章主要讲解了“JAVA异常是不是对性能有影响”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JAVA异常是不是对性能有影响”吧!实验我的实验基于一段随机抛出异常的简单代码。从科学的角度,
2023-06-13

.net core抛异常对性能的影响是什么

今天小编给大家分享一下.net core抛异常对性能的影响是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、前言疑问:
2023-07-02

Java中的异常对程序效率有没有影响

本篇内容介绍了“Java中的异常对程序效率有没有影响”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!当异常没有发生时,没有影响。其实从异常实现
2023-06-17

C++ 技术中的异常处理:异常处理对程序可读性有什么影响?

异常处理提升了 c++++ 代码的可读性,因为它:分离了错误处理逻辑,使代码更加清晰易懂。简化了错误处理,提供统一的方法处理不同类型的异常。提高了代码可靠性,能处理不可恢复的错误,防止程序意外终止。C++ 技术中的异常处理:对程序可读性的影
C++ 技术中的异常处理:异常处理对程序可读性有什么影响?
2024-05-09

C++ 技术中的异常处理:异常处理对程序性能的影响有哪些?

异常处理对 c++++ 程序性能的影响包括:异常抛出和捕获会导致堆栈操作和额外的代码路径。动态内存分配可能导致内存碎片化。优化技巧包括避免过度异常、优化异常处理程序、使用 noexcept 规范和异常规范。C++ 技术中的异常处理:异常处理
C++ 技术中的异常处理:异常处理对程序性能的影响有哪些?
2024-05-09

虚拟主机对网站性能有什么影响

虚拟主机对网站性能有什么影响?在建立和运行网站时,选择适当的主机方案对网站的性能起着至关重要的作用。虚拟主机是一种常见的低成本的主机解决方案,它在单个物理服务器上同时托管多个网站。虽然虚拟主机为许多小型和中小型网站提供了经济实惠的方式,但它们也会对网站的性能产生一些影响。
虚拟主机对网站性能有什么影响
2024-01-24

PHP 函数版本兼容性对性能有什么影响?

php 函数版本兼容性影响性能。忽略版本兼容性会导致效率低。较新版本的函数通常采用优化后的算法,可显着提高性能。在使用函数时,考虑其版本兼容性,避免使用已弃用的函数。采用最新版本的函数,例如 usort,可优化排序等任务的性能。PHP 函数
PHP 函数版本兼容性对性能有什么影响?
2024-04-25

异步编程对 PHP 函数性能的影响

异步编程可以通过不阻塞主线程和使用轻量级协程来提升 php 函数性能,实战中可用于优化 http 服务器的并发处理能力,从而提高吞吐量和响应时间。异步编程对 PHP 函数性能的影响概述异步编程是一种编程范式,允许在不阻塞主线程的情况下执
异步编程对 PHP 函数性能的影响
2024-04-11

Go语言异步编程对性能的影响

异步编程通过使用 goroutine 和异步 i/o 提高了 go 语言应用程序的性能:goroutine:轻量级的线程,允许并发任务。异步 i/o:不会阻塞调用线程,提高了 i/o 请求处理效率。实战案例对比:异步应用程序的每秒请求数量几
Go语言异步编程对性能的影响
2024-05-08

C++ 函数异常处理的性能影响如何?

c++++ 异常处理会带来额外的开销,包括内存分配、函数调用展开和查找匹配的 catch 子句。这些开销可能导致缓存未命中,从而影响性能。要减轻这些影响,建议限制异常使用、使用 noexcept 规范和考虑使用错误代码。C++ 函数异常处理
C++ 函数异常处理的性能影响如何?
2024-04-15

PHP 数组转对象对性能的影响是什么?

在 php 中,数组到对象的转换会对性能产生影响,主要受数组大小、复杂性、对象类等因素影响。为了优化性能,可以考虑使用自定义迭代器、避免不必要的转换、批量转换数组等技巧。PHP中数组转对象的性能影响在PHP中,数组和对象是两种常用的数据结
PHP 数组转对象对性能的影响是什么?
2024-04-30

软考缺考有什么影响?对以后有什么影响

  软考缺考有什么影响?对以后有什么影响吗?本文介绍了软考缺考的相关影响,大家可以一起来看一下。  软考,作为中国计算机技术与软件专业技术资格水平考试,对于广大考生来说,无疑是一个展示自身计算机与软件应用能力的平台。然而,有些考生因为各种原因,在考试当天选择缺考。这软考缺考有什么影响吗?  软考缺考的影响如下:  浪费
软考缺考有什么影响?对以后有什么影响
2024-04-19

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录