当前位置: 首页 > news >正文

西安公司建一个网站需要多少钱wordpress 淘宝模板怎么用

西安公司建一个网站需要多少钱,wordpress 淘宝模板怎么用,新能源汽车价格表2021,网站制作时如何分析竞争对手关于JVMJVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。其中,程序计数器,虚拟机栈,本地方法栈为线程私有的,而方法取和堆却是所有线程共享的。1、虚拟机栈:每个线程有一个私有的栈,…

关于JVM

JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。

其中,程序计数器,虚拟机栈,本地方法栈为线程私有的,而方法取和堆却是所有线程共享的。

1、虚拟机栈:

每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方法出口等信息。栈的大小可以固定也可以动态扩展。当栈调用深度大于JVM所允许的范围,会抛出StackOverflowError的错误,这个错误经常出现在递归调用之中,当我们的递归深度太大时,就会报这个错。

2、本地方法栈:

这部分主要与虚拟机用到的 Native 方法相关。                        

3、程序计数器

在JVM中,程序计数器(Program Counter Register)是一个小型内存区域,用于存储当前线程正在执行的字节码指令的地址,其主要作用是记录待执行的下一条指令的位置。‌这使得它在控制程序执行流程中扮演关键角色,例如处理分支逻辑、循环、异常处理以及线程恢复操作时,依赖程序计数器确保指令顺序正确。‌解释器在工作时通过程序计数器获取下一条需执行的字节码指令,维持了指令执行的连续性和精确性。‌

程序计数器设计为线程私有,每个线程拥有独立的该区域,这在多线程环境下至关重要:当线程切换发生时,程序计数器能恢复到切换前的执行位置,确保了线程隔离和正确恢复。‌此外,程序计数器是JVM运行时数据区中唯一一个不会触发内存溢出异常(OutOfMemoryError)的部分,因为它仅存储一个固定大小的指令地址值,不涉及动态内存分配。‌其实现类似物理寄存器的抽象,简化了跨平台执行的安全性和效率

4、堆

堆内存是 JVM 所有线程共享的部分,在虚拟机启动的时候就已经创建。所有的对象和数组都在堆上进行分配。这部分空间可通过 GC 进行回收。当申请不到空间时会抛出 OutOfMemoryError。

5、方法区

方法区是JVM规范中定义的‌逻辑内存区域‌,与堆(Heap)并列,属于‌线程共享‌的内存空间。 负责存储‌类型信息、常量、静态变量、即时编译器编译后的代码缓存‌等数据。

  1. class文件加载时进入方法区,声明的变量也进入方法区
  2. 方法运行时和对象的引用在栈内存中入栈内存中,方法运行结束弹栈消失
  3. 对象的实例和变量的赋值存放在堆内存中
  4. 当发生继承时,子类会将父类成员放入堆内存

堆内存的垃圾回收机制

JVM在程序运行过程当中,会创建大量的对象,这些对象,大部分是短周期的对象,小部分是长周期的对象,对于短周期的对象,需要频繁地进行垃圾回收以保证无用对象尽早被释放掉,对于长周期对象,则不需要频率垃圾回收以确保无谓地垃圾扫描检测。为解决这种矛盾,Sun JVM的内存管理采用分代的策略。

1.年轻代(Young Gen):年轻代主要存放新创建的对象,内存大小相对会比较小,垃圾回收会比较频繁。年轻代分成1个Eden Space和2个Suvivor Space(命名为A和B)。当对象在堆创建时,将进入年轻代的Eden Space。垃圾回收器进行垃圾回收时,扫描Eden Space和A Suvivor Space,如果对象仍然存活,则复制到B Suvivor Space,如果B Suvivor Space已经满,则复制到Old Gen。同时,在扫描Suvivor Space时,如果对象已经经过了几次的扫描仍然存活,JVM认为其为一个持久化对象,则将其移到Old Gen。扫描完毕后,JVM将Eden Space和A Suvivor Space清空,然后交换A和B的角色(即下次垃圾回收时会扫描Eden Space和B Suvivor Space。这么做主要是为了减少内存碎片的产生。默认情况下,Eden区和两个Survivor区(From/To)的比例是8:1:1

2.年老代(Tenured Gen):年老代主要存放JVM认为生命周期比较长的对象(经过几次的Young Gen的垃圾回收后仍然存在),内存大小相对会比较大,垃圾回收也相对没有那么频繁(譬如可能几个小时一次)。年老代主要采用压缩的方式来避免内存碎片(将存活对象移动到内存片的一边,也就是内存整理)。当然,有些垃圾回收器(譬如CMS垃圾回收器)出于效率的原因,可能会不进行压缩。

3.持久代(Perm Gen):持久代主要存放类定义、字节码和常量等很少会变更的信息。

默认情况下,年轻代占堆内存的1/3,老年代占2/3(通过参数 -XX:NewRatio=2 实现)‌

JVM垃圾回收算法:分代收集算法(Generational Collection)‌

‌核心机制‌:按对象生存周期分区管理‌:

‌新生代‌:采用复制算法(Eden和Survivor区比例通常为8:1:1),快速回收短期对象‌。

老年代‌:使用标记清除或标记整理算法,处理长期存活对象‌。

 优势‌:兼顾效率与内存利用率,是JVM默认策略‌

http://www.dtcms.com/a/433532.html

相关文章:

  • 企业建设网站的步骤是什么?wordpress环境安装
  • seo精华网站登封 网站建设
  • 网站建设服务商有哪些生产型或服务型企业网站有哪些
  • 网站更改备案主体方案 网站
  • 企业营销型网站建设优惠广告优化师工资一般多少
  • 广州网站建设论坛做鞋用什么网站好
  • 网站admin目录名怎么改广州的房地产网站建设
  • 做王境泽gif的网站注册公司网站模板下载
  • 网站和平台有什么区别做链接的网站
  • 四川网站排名廊坊市建设银行网站
  • 微盟网站模板电脑制作视频的软件有哪些
  • 红酒公司的网站建设wordpress打开很卡
  • 做游戏网站选服务器承德市建设局网站
  • 自己做网站导航做任务领佣金的网站源码
  • 沧州网站建设价格遵义seo网络优化招聘
  • 象山县城乡和住房建设局网站建站系统软件有哪些
  • 成都专业做游戏网站空白word个人简历模板下载
  • 手机网站模板下载设计广告网站
  • 做啥网站流量高新手如何做网上销售
  • 学做网站需要多长时间佛山做公司网站
  • 太原论坛网站开发公司好玩的网页
  • 织梦网站上传路径不对竞价托管公司
  • 咚咚抢网站怎么做的做100个网站效果
  • 外贸网站建设的意义废品回收在哪个网站做效果好
  • 织梦dedecms导航网站源码做防护用品的网站
  • 重庆建设机电网站广东个人备案网站内容
  • 做设计的网站中英文 wordpress
  • 网站建设所需要的内容可信验证网站
  • 昆明网站开发推广电子商务网站建设感想
  • 怎样创建一个网站wordpress分页问题