JVM-5

1.选择垃圾收集器

  1. 如果你的堆大小不是很大(比如 100MB ),选择串行收集器一般是效率最高的。
    参数: -XX:+UseSerialGC 。
  2. 如果你的应用运行在单核的机器上,或者你的虚拟机核数只有单核,选择串行收集器依然是合
    适的,这时候启用一些并行收集器没有任何收益。
    参数: -XX:+UseSerialGC 。
  3. 如果你的应用是"吞吐量"优先的,并且对较长时间的停顿没有什么特别的要求。选择并行收集
    器是比较好的。
    参数: -XX:+UseParallelGC 。
  4. 如果你的应用对响应时间要求较高,想要较少的停顿。甚至 1 秒的停顿都会引起大量的请求失
    败,那么选择 G1 、 ZGC 、 CMS 都是合理的。虽然这些收集器的 GC 停顿通常都比较短,但它
    需要一些额外的资源去处理这些工作,通常吞吐量会低一些。
    参数:
    -XX:+UseConcMarkSweepGC 、
    -XX:+UseG1GC 、
    -XX:+UseZGC 等。
    从上面这些出发点来看,我们平常的 Web 服务器,都是对响应性要求非常高的。选择性其实就集
    中在 CMS 、 G1 、 ZGC 上。而对于某些定时任务,使用并行收集器,是一个比较好的选择。

2.类加载器

类加载器是一个用来加载类文件的类。Java 源代码通过 javac 编译器编译成类 文件。然后 JVM 来执

行类文件中的字节码来执行程序。类加载器负责加载文件 系统、网络或其他来源的类文件。

类加载器虽然只用于实现类的加载动作,但它在 Java 程序中起到的作用却远超类加阶段。对于任意一个类,都必须由加载它的类加载器和这个类本身一起共同确立其在 Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。这句话可以表达得更通俗一些:比较两个类是否"相等",只有在这两个类是由同一个类加载器加载的前提下才有意义,否则,即使这两个类来源于同一个 Class 文件,被同一个 Java 虚拟机加载,只要加载它们的类加载器不同,那这两个类就必定不相等。

原文链接:JVM-5 · 语雀

近日总结:没错,我就是恋爱脑!

赶紧来个人把我捞出来吧!!!!

相关推荐
嘻哈baby10 小时前
Go 函数中的参数为什么不支持默认值?
java·开发语言·jvm
wuminyu12 小时前
Linux内核线程调度与虚拟线程调度机制系统级深度剖析
java·linux·c语言·jvm·c++
hfywmsj14 小时前
广州餐饮铺位招租的选址架构:流量入口与成本函数分析
java·大数据·jvm·广州餐饮铺位招租
Tingjct2 天前
线程详细讲解---聚焦linux
linux·服务器·jvm
myy-learn2 天前
32 SQLITE数据库
jvm·数据库·sqlite
wuminyu2 天前
JVM锁膨胀与Futex源码解析
java·linux·c语言·jvm·c++
郝学胜-神的一滴2 天前
C++11 工程级应用 08:Lambda表达式与Tuple元组
开发语言·jvm·c++·python·程序人生·开源
袋鼠云数栈2 天前
整库迁移与分库分表同步:批量数据搬迁的配置简化思路
jvm·数据库·oracle
Mr. zhihao3 天前
JVM 偏向锁 4 秒延迟:从源码动机到 JEP-374 废弃全链路
jvm·并发·偏向锁
孙克旭_3 天前
JVM 入门详解:JVM、JRE、JDK 区别,JVM 基础结构梳理
java·开发语言·jvm