前言 大疫情影响下的互联网公司,没有了从前的交头接耳,没有了往日的吵吵闹闹。大家都戴着口罩,安安静静的敲着键盘,唯恐附近的就有病原体。工作量也是断崖式下跌,去年年底还是天天加班到凌晨的状态,现在上班划划水,下班到点走人,两个字,舒服~~Java 相比 C/C++ 最显著的特点便是引入了自动垃圾回收 (下文统一用 GC 指代自动垃圾回收),它解决了 C/C++ 最令人头疼的内存管理问题,让程序员专注
转载 2024-07-24 15:33:10
14阅读
通常内存溢出时JVM会提示具体的内存溢出原因,下面是几种常见的情况及简要的原因说明及相关的JVM配置。栈溢出:StackOverflowErrorJVM输出信息:“java.lang.StackOverflowError”。JVM相关机制:JVM在执行Java方法调用时需要使用栈传递调用参数、返回值以及保存局部变量表,通常组织为栈帧(Stack Frame)结构。从概念上说,每次Java方法调用都
# 解决Java Spring API JVM内存突然升高降不下去的问题 近年来,Java Spring框架作为一种流行的后端开发框架,被广泛应用于各种Web应用程序中。然而,一些开发者在使用Java Spring API时,会遇到JVM内存突然升高而无法降下去的问题。这种情况往往会导致应用程序的运行效率下降,甚至影响到整个系统的稳定性。本文将介绍如何解决这一问题,并提供一些代码示例来帮助读者更
原创 2024-02-27 04:00:47
102阅读
1. 背景多个业务线的应用出现LongGC告警最近一段时间,经常收到CAT报出来的Long GC告警(配置为大于3秒的为Longgc)。2. 知识回顾2.1 JVM堆内存划分新生代(Young Generation)新生代内被划分为三个区:Eden,from survivor,to survivor。大多数对象在新生代被创建。Minor GC针对的是新生代的垃圾回收。老年代(Old Generat
转载 2021-02-04 12:45:44
273阅读
2评论
# Java CPU 升高问题分析及解决方案 ## 引言 在 Java 应用程序开发中,我们可能会遇到 CPU 占用过高的问题。这种情况通常会导致系统响应变慢、性能下降甚至崩溃。本文将介绍 CPU 升高问题的原因,并提供一些常见的解决方案。 ## 问题原因 Java 应用程序在运行时会创建多个线程,每个线程都会消耗一定的 CPU 资源。如果某个线程占用过高,就会导致整体 CPU 占用率升高。造
原创 2023-12-20 06:24:03
245阅读
# Java内存持续升高的实现方法 ## 流程概述 下面是实现Java内存持续升高的一个简单流程: | 步骤 | 描述 | | --- | --- | | 1 | 创建一个无限循环 | | 2 | 在循环中不断地创建大量的对象 | | 3 | 阻止这些对象被垃圾回收 | | 4 | 观察Java内存的使用情况 | ## 代码示例 以下是每个步骤需要做的事情和代码示例: ### 步骤1:
原创 2023-10-25 12:55:48
73阅读
## 实现Java内存缓慢升高的步骤 ### 1. 创建一个无限循环的程序 首先,我们需要创建一个无限循环的程序,以便持续占用内存。 ```java public class MemoryLeak { public static void main(String[] args) { while (true) { // 占用内存的操作
原创 2023-09-14 12:02:05
95阅读
# Java内存升高排查 在开发Java应用程序时,内存管理是一个非常重要且复杂的主题。内存使用量的增加可能会导致应用程序性能下降,甚至崩溃。因此,在发生内存升高的问题时,及时排查是非常必要的。本文将介绍一些内存升高的常见原因,并提供代码示例来帮助理解。 ## 一、内存升高的原因 内存升高的原因通常可以归结为以下几种: 1. **内存泄漏**:对象在不再使用后仍然被引用,导致垃圾回收器无法
原创 2024-08-05 08:16:45
309阅读
# Java 内存升高不降 Java 是一种高级编程语言,它的内存管理是由 Java 虚拟机(JVM)来负责的。在 Java 中,内存由 Java 堆和方法区组成。Java 堆用于存储对象实例,方法区用于存储类信息和静态变量。 然而,有时候我们会遇到 Java 内存占用升高但不降的情况。这可能会导致程序的性能下降,并最终导致内存溢出。在本文中,我们将讨论一些常见的原因和解决方案。 ## 原因
原创 2023-07-23 14:49:34
618阅读
Java项目的开发和运维过程中,内存管理无疑是一个重要而棘手的问题。随着业务的增长,系统使用的内存量越来越大,导致了“java项目内存升高”的问题。这个问题不仅对项目的稳定性产生影响,也影响了用户体验和开发效率。接下来,我们就来详细探讨这一问题的解决过程。 ## 初始技术痛点 在项目初期,由于对内存管理的关注不足,导致了内存的无序增长。在这里,我创建了四象限图,展示了不同技术债务分布情况。由
原创 7月前
20阅读
点击上方 "程序员小乐"关注,星标或置顶一起成长后台回复“大礼包”有惊喜礼包!关注订阅号「程序员小乐」,收看更多精彩内容每日英文It doesn't matte...
转载 2021-05-28 16:25:42
67阅读
本内容参考《JV13官方文档》,《ZGC设计与实现》还有一个甲骨文大佬的PPT(忘记名字了) 可能涉及内容 JVM结构–jvm内存模型和java内存模型 JVM编译 类文件详解 加载、链接、初始化 GC算法 JAVA代码与其他语言交互 监控与优化 Java编译java-编译其他语言-编译虚拟机等 Hotspot源码设计原理 G1源码分析 JDK13改进版ZGC源码分析 自己设计简易JVM 如上内容
转载 2024-05-10 19:00:46
49阅读
1. 背景多个业务线的应用出现LongGC告警最近一段时间,经常收到CAT报出来的Long GC告警(配置为大于3秒的为Longgc)。2. 知识回顾2.1 JVM堆内存划分新生代(Young Generation)新生代内被划分为三个区:Eden,from survivor,to survivor。大多数对象在新生代被创建。Minor GC针对的是新生代的垃圾回收。老年代(Old Generat
背景多个业务线的应用出现LongGC告警最近一段时间,经常收到CAT报出来的Long GC告警(配置为...
转载 2022-04-23 09:59:41
67阅读
1. 背景多个业务线的应用出现LongGC告警最近一段时间,经常收到CAT报出来的Long GC告警(配置为大于3秒的为Longgc)。2. 知识回顾2.1 JVM堆内存划分新生代(Young Generation)新生代内被划分为三个区:Eden,from survivor,to survivor。大多数对象在新生代被创建。Minor GC针对的是新生代的垃圾回收。老年代(Old Generat
转载 2021-01-22 19:56:21
182阅读
1. 背景多个业务线的应用出现LongGC告警最近一段时间,经常收到CAT报出来的Long GC告警(配置为大于3秒的为Longgc)。2. 知识回顾2.1 JVM堆内存划分新生代(Young Generation)新生代内被划分为三个区:Eden,from survivor,to survivor。大多数对象在新生代被创建。Minor GC针对的是新生代的垃圾回收。老年代(Old Generat
原创 2021-03-05 20:15:43
72阅读
点击上方“朱小厮的博客”,选择“设为星标”后台回复"书",获取1. 背景多个业务线的应用出现LongGC告警最近一段时间,经常收到CAT报出来的Long GC告警(配置为...
转载 2021-09-06 10:18:51
91阅读
1. 背景多个业务线的应用出现LongGC告警最近一段时间,经常收到CAT报出来的Long GC告警(配置为大于3秒的为Longgc)。2. 知识回顾2.1 JVM堆内存划分新生代(Young Generation)新生代内被划分为三个区:Eden,from survivor,to survivor。大多数对象在新生代被创建。Minor GC针对的是新生代的垃圾回收。老年代(Old Generat
转载 2020-12-19 18:09:34
199阅读
还有谁?
原创 2021-09-15 11:52:04
48阅读
这个问题可以说是 Java 面试的高频面试题了,有很多面试官都喜欢问这个问题,问题可能是下面这样的。线上一台服务器 CPU 使用率100% 了,如果你碰到这样的情况,如何排查并找到问题原因?这就是一个套路题,所谓套路题就是有标准的套路解法的,掌握了套路,不仅能解决面试官,还能解决问题。不然真的就掉进套路里了。当我们真碰到这个问题的时候应该怎么排查呢?模拟一个高 CPU 场景先用一段程序创建几个线程
转载 2024-10-10 10:53:58
67阅读
  • 1
  • 2
  • 3
  • 4
  • 5