官方网站建设维护合作协议公司网站经常打不开

pingmian/2026/1/25 19:04:33/文章来源:
官方网站建设维护合作协议,公司网站经常打不开,php 企业网站管理系统,国外做外贸的小网站jvm 垃圾收集算法总览 在对系统进行性能相关问题的故障排除时#xff0c;内存优化是一个需要深入分析每个系统在内存中存储的内容#xff0c;存储时间和访问方式的场所。 这篇文章是要对背景信息进行注释#xff0c;并在此工作中要注意一些要点#xff0c;这些工作要针对基… jvm 垃圾收集算法 总览 在对系统进行性能相关问题的故障排除时内存优化是一个需要深入分析每个系统在内存中存储的内容存储时间和访问方式的场所。 这篇文章是要对背景信息进行注释并在此工作中要注意一些要点这些工作要针对基于Java的实现因为深入了解JVM行为在此过程中非常有益。 Java语言在很大程度上照顾了内存管理从而将精力集中在其余逻辑上从而为开发人员提供了极大的便利。 仍然对Java如何做到这一点有很好的了解合理化我们在Java实现中遵循的几种最佳实践并帮助更好地设计程序并认真思考某些方面从长远来看这些方面以后可能导致内存泄漏和系统稳定性。 Java Garbage Collector在这方面起着重要作用它负责通过删除内存垃圾来释放内存。 这些信息可广泛获得但是我在这里汇总以供参考。 :) JVM使Java代码能够以独立于硬件和OS的方式运行。 它在操作系统为物理机的另一抽象而分配给自己的进程的内存位置上运行。 JVM可以基于[1]中发布​​的开放标准来实现众所周知的实现是Oracle Hotspot JVM几乎与Android OS中使用的开放源代码版本OpenJDKIBM J9JRockit和Dalvik VM有所不同。 简而言之JVM使用从平台分配给它的资源来加载和执行已编译的Java字节代码它在上面运行。 类加载器 将字节码加载到JVM内存中加载链接验证准备解决–如果发出失败的NoClassDef发现异常初始化引导类加载器扩展类加载器应用程序类加载器 内存和运行时数据区 尽管它并不全面但它涵盖了以下几个重要部分。 本机方法堆栈– Java本机库堆栈它与平台有关主要是用C语言编写的。 JVM堆栈每个线程保留当前执行的方法堆栈跟踪。如果未设置适当的中断则递归方法调用可能导致堆栈被填充和溢出java.lang.StackOverFlowError 。-Xss JVM选项允许配置堆栈大小。PC寄存器程序计数器指向每个线程要执行的下一条指令。 方法区域存储类数据大小受XXMaxPermSize限制 PermGen空间默认为64MB如果要服务于加载数百万个类的大型服务器应用程序则可以通过增加调整来避免OOM问题PermGen空间。来自Java 8以后尽管允许对其进行微调和限制但默认情况下在Java8中此PermGen空间被称为无限制的Metaspace没有限制HeapXmsXmx运行时常量池 执行引擎 该引擎执行通过类加载器分配给运行时数据区域的字节码。 它利用解释器垃圾收集器热点分析器JIT编译器来优化程序执行。 有关JVM体系结构的更多详细信息请参见[2]。 现在我们知道了垃圾收集器在JVM体系结构中的位置。 让我们深入了解内部。 垃圾收集器 这是Java自动内存管理过程它删除了不再使用的对象。 接下来的问题是它如何决定是否使用该对象。 它定义了两类对象 活动对象 –从另一个对象引用的可访问对象。 最终参考链接将到达根该根是创建整个对象图的主线程。 死对象 –只是躺在堆中的其他对象未引用的不可访问对象。 此分类和垃圾回收基于以下两个事实。 1.大多数对象在创建后很快就变得无法访问。 通常短暂对象仅存在于方法上下文中。 2.老物件很少指年轻物件。 例如寿命长的缓存几乎不会从中引用较新的对象。 新创建的对象实例驻留在Java堆中该堆可以进行不同的生成如下所示。 垃圾收集是通过称为“垃圾收集器”的守护程序线程完成的该线程将对象引导通过堆中的不同空间。 垃圾收集分3个步骤进行。 1.标记 –从根开始并遍历对象图将可到达的对象标记为活动对象。 2.扫描 –删除未标记的对象。 3.紧凑 –对内存进行碎片整理使活动对象的分配连续。 这被认为是最耗时的过程。 堆区域划分如下。 旧的终身使用的代 –可以存活很长时间的对象请留在这里直到它被标记为无法访问并在遍及整个堆的主要垃圾收集中清理为止。 年轻一代 –进一步分为3个伊甸园空间和2个幸存者空间。 垃圾收集分为两个阶段“次要”或“主要”。 这两个垃圾回收都是停止运行的操作它们停止所有其他内存访问。 应用程序可能不会感觉到次要GC因为它仅扫描年轻一代空间会很小。 垃圾收集器 内存生命周期如下图所示如上图所示。 1.新创建的对象驻留在Eden空间中。 就像人类从伊甸园开始的一样在伊甸园空间变满之前它一直在不断增加新的物体。 2.当Eden空间已满时将运行一个次要GC标记活动对象然后将这些活动对象移至“幸存者从”空间然后扫掠空闲的Eden空间。 3.然后在程序运行时继续用新对象填充Eden空间。 现在当Eden空间已满时我们先前也已将“幸存者来自”空间中的对象移动了。 次要GC在这两个空间中运行标记对象然后将剩余的活动对象整体移至其他幸存者空间。 想知道为什么不将有生命的物体从伊甸园空间复制到“幸存者从”的剩余空间而不是全部转移到另一个幸存者空间 好吧事实证明在紧凑的步骤中将所有对象移到另一个对象上要比压缩其中包含对象的区域更为有效。 4.此循环将在幸存者空间之间重复移动对象直到达到配置的阈值-XX MaxTenuringThreshold 。 它跟踪每个对象生存了多少个GC循环。 当达到阈值时这些对象将被移至保管空间。 5.随着时间的流逝如果使用权空间也被填满则主GC将启动并遍历整个堆内存空间以执行GC步骤。 这种暂停可以在人际互动中感受到这是不希望的。 当内存泄漏或长时间驻留大量高速缓存时使用期限将被占用。 在这种情况下这些对象甚至可能没有被检测为死亡。 这会导致主要GC频繁运行因为它检测到永久性空间已满但是由于无法清除任何内容因此无法清理足够的内存。 当内存不足时日志中的错误“ java.lang.OutOfMemoryError”将清楚地提示我们。 另外如果我们看到频繁使用大量内存而导致CPU频繁运行则可能是由于某些内存处理问题需要引起注意而导致GC频繁运行的征兆。 当专注于JVM的微调关注内存的利用率时主要的决定因素是响应性/延迟和吞吐量中更关键的因素。 如果在批处理中吞吐量是最重要的那么如果可以提高总体吞吐量我们可以在运行主要GC的过程中稍作停顿。 因为应用程序偶尔的响应速度可能不是那里的问题。 另一方面如果像在基于UI的应用程序中一样响应性至关重要则应尝试避免使用大型GC。 也就是说这样做并没有帮助。 例如我们可以通过增加年轻一代的空间来延迟大型GC。 但是随后小型GC将开始花费大量时间因为它现在需要遍历并压缩巨大的空间。 因此要拥有正确的尺寸就需要谨慎地实现年轻人和老年人之间的正确比例。 有时这甚至可以进入应用程序设计细节中以通过对象创建模式和缓存位置来微调内存使用情况。 这将是另一篇文章的主题该文章分析堆转储和火焰图以确定要缓存的最佳内容。 垃圾收集器 由于垃圾回收的作用对应用程序的性能有很大的影响因此工程师已经投入了大量的精力来改进它。 结果是我们可以根据需求选择最佳垃圾收集器。 以下是不完整的选项列表。 1.串行收集器 在单个线程中运行。 仅适用于基本应用。 一个线程执行垃圾回收。 它只会使世界处于标记和重新标记阶段。 其余的工作在应用程序运行时完成并且不等待旧的版本已满。 当内存空间很大有大量的CPU来满足并发执行时以及当应用程序要求最短的暂停和响应时间成为关键因素时这是一个不错的选择。 过去这是大多数Web应用程序中最受欢迎的。 3.并行收集器 该收集器使用多个CPU。 它等待旧的一代充满或接近充满但是当它运行时它停止了世界。 多个线程进行标记清除和压缩使垃圾收集更快。 当内存不是很大并且CPU数量受到限制时这是一个很好的选择可以满足对吞吐量的要求可以承受暂停。 4. G1垃圾优先收集器1.7以上 通过允许配置例如GC运行时暂停时间此选项可提高垃圾收集的可预测性。 据说在并行性和并发性两方面都具有优势。 它将内存划分为多个区域每个区域都被视为伊甸园幸存者或保有权空间。 如果该区域有更多无法访问的对象则该区域将首先被垃圾回收。 版本中的默认垃圾收集器 Java 7 –并行GC Java 8 –并行GC Java 9 – G1 GC Java 10 – G1 GC Java 11 – G1 GCZGC与Epsilon一起作为实验功能提供 Java 12 – G1 GC引入了Shenandoah GC。仅适用于OpenJDK。 垃圾收集器的优化参数 除非有默认设置要解决的问题或者是经过长时间的考虑并且经过长时间的生产级别的负载模式验证之后才决定要调整JVM否则不要这样做。 这是因为Java Ergonomics已经取得了很大进步并且如果应用程序的外观不丑陋则大多数时候将能够执行许多优化。 可以在[5]中找到选项的完整列表包括配置堆空间的大小阈值要使用的垃圾收集器的类型等。 诊断 除堆转储外以下配置还有助于通过GC行为诊断内存问题。 -XX-PrintGCDetails –打印垃圾收集的详细信息。 -Xloggc文件名 –将GC日志记录详细信息打印到给定文件。 -XX-UseGCLogFileRotation –完成上述配置后启用GC日志文件旋转。 -XX-HeapDumpOnOutOfMemoryError –如果发生OOM错误则转储堆内容以进行进一步分析。 -XXOnOutOfMemoryError ” cmd args ””; cmd args ””” –如果发生OOM错误则要运行的命令集。 遇到错误时允许执行任何自定义任务。 我们将在另一篇文章中讨论诊断和分析细节。 干杯! [1] – https://docs.oracle.com/javase/specs/index.html [2] – https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.5.6 [2] – Oracle垃圾收集调优指南– https://docs.oracle.com/javase/9​​/gctuning/ergonomics.htm#JSGCT-GUID-DB4CAE94-2041-4A16-90EC-6AE3D91EC1F1 [3] –新的Java垃圾收集器– https://blogs.oracle.com/javamagazine/understanding-the-jdks-new-superfast-garbage-collectors [4] –可用的收藏家– https://docs.oracle.com/cn/java/javase/13/gctuning/available-collectors.html#GUID-F215A508-9E58-40B4-90A5-74E29BF3BD3C [5] – JVM选项– https://www.oracle.com/technetwork/articles/java/vmoptions-jsp-140102.html 翻译自: https://www.javacodegeeks.com/2020/05/jvm-garbage-collection-and-optimizations.htmljvm 垃圾收集算法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/85764.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用户密码找回网站wordpress重装主题

介绍 本篇Codelab基于基础组件、容器组件,实现一个支持加减乘除混合运算的计算器。 说明: 由于数字都是双精度浮点数,在计算机中是二进制存储数据的,因此小数和非安全整数(超过整数的安全范围[-Math.pow(2, 53)&#…

西安SEO网站建设哪家好铜仁公司做网站

✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:橘橙黄又青-CSDN博客 1.关键字enum的定义 enum是C语言中的一个关键字,enum叫枚举数据类型&#…

如何做 网站的seo无障碍网站开发

文章目录1.SIGCHLD信号2.信号传参3.捕捉信号传参4.中断系统调用1.SIGCHLD信号 2.信号传参 3.捕捉信号传参 4.中断系统调用

做dj网站能赚钱吗国外金融网站设计欣赏

在数字时代,图片是我们日常生活中不可或缺的一部分。然而,有时候由于各种原因,我们得到的图片清晰度可能并不理想。这篇文章将介绍三款软件,帮助你提高图片的清晰度,让你的图片更加生动、清晰。 一、水印云 水印云是…

新乡企业网站建设公司网站备案到公司名称

物流运筹实务课程设计题目:置换流水车间调度问题的MATLAB求解置换流水车间调度问题的MATLAB求解目录前言……………………………………………………………………… 5问题描述………………………………………………………………… 6算法设计…………………………………

关键词查找网站广东建设注册执业中心网站

文章目录 前言一、滚动元素相关属性回顾一、实现分析二、代码实现示例:2、继续添加功能,增加鼠标移入停止滚动、移出继续滚动效果2、继续完善 前言 列表自动滚屏效果常见于大屏开发场景中,本文将讲解用vue3实现一个无缝衔接、滚动平滑的列表自…

网站备案是指什么南通集团网站建设

题库来源:安全生产模拟考试一点通公众号小程序 通信安全员ABC证新版试题根据新通信安全员ABC证考试大纲要求,安全生产模拟考试一点通将通信安全员ABC证模拟考试试题进行汇编,组成一套通信安全员ABC证全真模拟考试试题,学员可通过…

班级网站建设组织机构融资平台

题解:判断d是否整除,可以转化为求这段区间内d的因子的指数是否均大于d中的指数。容易想到把每个数字都分解为素因子形式,对每个素数出现的次数求个前缀和即可。然而,这样时间空间都不行。注意到对于一个数x,小于sqrt(x…

腾讯网站站内面包屑导航叫人做网站多少钱

客户那里有Gigaset手机,安装我们的产品需要注入DeviceOwner,但是刚恢复默认出厂的Gigaset手机很奇葩,注入权限的提示下面错误,导致不能使用我们的产品 设置DeviceOwner权限是有限制的,需要手机账号(acount)为0 1 我们用命令查看手机的帐号 adb shell dumpsys account …

做网站前端网址可以自己写吗wordpress 中文文件名

一 MQ 的基本概念 1 MQ概述 MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。消息队列就是所谓的存放消息的队列。 消息队列解决的不是存放消息的队列的⽬的,解决的是通信问…

wordpress前台用户中心代码wordpress 优化''

目录 课程教学一次简单的Hack程序的编译与链接Linux下的可执行文件格式ELF进程虚拟地址空间程序的编译与链接程序的装载与进程的执行x86&amd64汇编简述 课程教学 课程链接:https://www.bilibili.com/video/BV1854y1y7Ro/?vd_source7b06bd7a9dd90c45c5c9c44d12…

昆山做网站好的建设门户网站的可行性分析

文章目录 一、实验描述二、实验数据三、实验过程1. 手动删除2. 简化线工具四、注意事项一、实验描述 矢量数据获取通常来源于手动或者ArcScan自动采集,其基本存储方式就是记录每个要素的点坐标,如点要素就是一个坐标、线要素由多个点要素连接形成。当某段线要素被过多的节点…

什么样的企业需要做网站做网站如何配置自己的电脑

在开发 H5 应用的时候碰到一个问题,应用只需要一张小的缩略图,而用户用手机上传的确是一张大图,手机摄像机拍的图片好几 M,这可要浪费很多流量。获取图片通过 File API 获取图片。var input document.createElement(input);input…

网站开发产生费用分录怎么写网站建设开发维护

1.PHP表单处理PHP 超全局变量 $_GET 和 $_POST 用于收集表单数据GET 和 POST 都创建数组(例如,array( key > value, key2 > value2, key3 > value3, ...))。此数组包含键/值对,其中的键是表单控件的名称,而值是来自用户的输入数据。…

欢迎访问陕西省交通建设集团公司网站长春网站优化流程

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后: 1. 题目解析 题目链接:202. 快乐数 - 力扣(Leetcode) 这道题的题目也很容易理解, 看一下题目给的示例就能很容易明白, 但是要注意一个点&#…

win7 iis 默认网站属性网站设配色

Blocks概要 Blocks是C语言的扩充功能,即带有自动变量的匿名函数。匿名函数就是不带函数名的函数。这一概念同样被称为“闭包”,lambda计算等。 自动变量是在函数内部声明的变量,其作用域仅限于声明它的函数内部。这意味着它们只能在其声明的…

苏州市网站制作台州网站制作咨询薇

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

网站服务器排名前十广州市外贸网站建设企业

初识sql语句 SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型: DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTERDML语句 数据库操纵语言&a…

云梦县城乡建设局网站百度关键词优化推广

概述 最近工作中有用到ES ,当然少不了自己装一个服务器捣鼓。本文的ElasticSearch 的版本: 7.17.3 一、下载 ElasticSearch 点此下载 下载完成后上传至 Linux 服务器,本文演示放在: /root/ 下,进行解压&#xff1…

关于网站建设的外文文献网站建设开发方式包括一l丫

目录 一.配置软件仓库 二.安装http php miriadb 三.配置数据库 四.源码拖拽并解压 五.防火墙通过 六.浏览器安装测试 七.界面参数设置 一.配置软件仓库 1.进入仓库目录 cd /etc/yum.repos.d 2.创建仓库文件 vim local.repo 3.在 local.repo中写入:(粘贴的时候注意位…