千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 如何正确理解Java领域中的内存模型,主要是解决了什么问题?(一)

如何正确理解Java领域中的内存模型,主要是解决了什么问题?(一)

来源:千锋教育
发布人:qyf
时间: 2022-08-02 17:43:00 1659433380

  这些年,随着CPU、内存、I/O 设备都在不断迭代,不断朝着更快的方向努力。在这个快速发展的过程中,有一个核心矛盾一直存在,就是这三者的速度差异。CPU 和内存的速度差异可以形象地描述为:CPU 是天上一天,内存是地上一年(假设 CPU 执行一条普通指令需要一天,那么 CPU 读写内存得等待一年的时间)。内存和 I/O 设备的速度差异就更大了,内存是天上一天,I/O 设备是地上十年。

  我们都知道的是,程序里大部分语句都要访问内存,有些还要访问 I/O,根据木桶理论(一只水桶能装多少水取决于它最短的那块木板),程序整体的性能取决于最慢的操作——读写 I/O 设备,也就是说单方面提高 CPU 性能是无效的。

  为了合理利用 CPU 的高性能,平衡这三者的速度差异,计算机体系结构、操作系统、编译程序都做出了贡献,主要体现为:

  现代计算机在CPU 增加了缓存,以均衡与内存的速度差异

  操作系统增加了进程、线程,以分时复用 CPU,进而均衡 CPU 与 I/O 设备的速度差异

  编译程序优化指令执行次序,使得缓存能够得到更加合理地利用

  由此可见,虽然现在我们几乎所有的程序都默默地享受着这些成果,但是实际应用程序设计和开发过程中,还是有很多诡异问题困扰着我们。

  基本概述

1


  每当提起Java性能优化,你是否有想过,真正需要我们优化的是什么?或者说,指导我们优化的方向和目标是否明确?甚至说,我们所做的一切,是否已经达到我们的期望了呢?接下来,我们来详细探讨一下。

  性能优化根据优化的方向和目标来说,大致可以分为业务优化和技术优化。业务优化产生的影响是非常巨大的,一般最常见的就是业务需求变更和业务场景适配等,当然这是产品和项目管理的工作范畴。而对于我们开发人员来说,我们需要关注的和直接与我们相关的,主要是通过一系列的技术手段,来完成我们对既定目标的技术优化。其中,从技术手段方向来看,技术优化主要可以从复用优化,结果集合优化,高效实现优化,算法优化,计算优化,资源冲突优化和JVM优化等七个方面着手。

  一般来说,技术优化基本都集中在计算机资源和存储资源的规划上,最直接的就是对于服务器和业务应用程序相关的资源做具体的分析,在照顾性能的前提下,同时也兼顾业务需求的要求,从而达到资源利用最优的状态。一味地强调利用空间换时间的方式,只看计算速度,不考虑复杂性和空间的问题,确实有点不可取。特别是在云原生时代下和无服务时代,虽然模糊和减少了开发对这些问题的距离,但是我们更加需要了解和关注这些问题的实质。

  特别指出的是,JVM优化。由于使用Java编写的应用程序,本身Java是运行在JVM虚拟机上的,这就意味着它会受到JVM的制约。对于JVM虚拟机的优化。一定程度上会提升Java应用程序的性能。如果参数配置不当,导致内存溢出(OOM异常)等问题,甚至引发比这更严重的后果。

  由此可见,正确认识和掌握JVM结构相关知识,对于我们何尝不是一个进阶的技术方向。当然,JVM虚拟机这一部分的内容,相对编写Java程序来说,更加比较枯燥无味,概念比较多且抽象,需要我们要有更多的耐心和细心。我们都知道,一颗不浮躁的心,做任何事都会收获不一样的精彩。

  更多关于“java培训”的问题,欢迎咨询千锋教育在线名师。千锋教育多年办学,课程大纲紧跟企业需求,更科学更严谨,每年培养泛IT人才近2万人。不论你是零基础还是想提升,都可以找到适合的班型,千锋教育随时欢迎你来试听。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT