内存泄漏指南

     

Java中标记清除垃圾收集算法

79 5K

垃圾收集算法(例如标记和清除)在后台运行,以管理 C++ 和 Java 等编程语言中的内存。当动态创建对象时,它们会占用堆中的内存。但是,如果我们继续创建对象而不释放内存,则可能会导致内存不足错误。为.

简短比较三个 Java现代垃圾回收器

136

最新版本的 Java 中引入了三个现代垃圾收集器,以下是三个场景比较:G1 收集器专为以下应用而设计: 可以与应用程序线程并发操作。 紧凑的可用空间,没有长时间的 GC 引起的暂停时间。 需要更可预测.

Rust 如何在没有垃圾收集器的情况下解决内存管理问题?

571 5K

每个计算机程序都需要内存和管理内存的方法。传统的内存管理范式要么容易出错,要么性能很差。Rust的内存管理系统是独一无二的,因为它无需使用垃圾收集器就能提供内存安全和可预测的高性能。栈Stack和堆h.

Java最新垃圾回收器ZGC升级:世代ZGC

527

ZGC ( JEP 333 ) 专为低延迟和高可扩展性而设计。自 JDK 15 ( JEP 377 )以来,它已可用于生产。ZGC 在应用程序线程运行时完成大部分工作,只是短暂地暂停这些线程。ZGC .

使用JDK飞行记录器和一些SQL查找Java线程泄漏 - Gunnar Morling

671

配备 JDK Flight Recorder、JDK Mission Control 和 JFR Analytics,识别和修复 Java 应用程序中的线程泄漏正在成为一项相对简单的任务。分析可疑线程.

Quarkus Native 采用 Adaptive GC 策略

760 3K

从 Quarkus 2.13.6.Final 开始,本机Native运行时垃圾收集策略已切换,以提供更一致和可预测的运行时性能。在 2022 年的某个时候,在进行一些本机运行时性能基准测试时,我们观察.

JEP 254能节省多少内存?

800 11K

JEP 254将字符串中 的char[] 替换 为 byte[] 会节省多少内存?让我们看看 JEP 254 的实际影响。JEP 254 提案后,Java 的字符串从 Java 9 开始被压缩。如果所.

SpringBoot如何​​​​​​​在关闭容器之前实现自己逻辑?

855

有时,我们需要在关闭spring容器之前做一些额外的工作,比如关闭资源文件。这时,你可以实现DisposableBean接口并重写其destroy方法。@Servicepublic class DSe.

为什么我要实现一个安全的Rust并发循环收集器

805 3K
Rust是一种伟大的语言。它在对象和分配的内存布局方面给了你很大的控制权,但是通过它的借用检查系统,你对这些对象寿命的使用被正确管理:如果你拿了一个对象的指针,你必须向编译器静态地证明这个指针寿命永远.

Java使用默认线程池的陷阱问题

946

我们都知道JDK1.5之后提供了ThreadPoolExecutor类,可以用来自定义线程池。线程池有很多好处,比如: 减少资源消耗,避免频繁创建和销毁线程,可以直接复用已有线程。 提供速度,任务来了.

SpringBoot异步注释@Async的并发陷阱

1451 2K

在 Java 并发编程中实现异步函数之前,一般需要使用线程或线程池。线程池的底层也使用线程。要实现一个线程,要么继承Thread类,要么实现Runnable接口,然后在run方法中编写具体的业务逻辑代.

Java并发编程Bug:ThreadLocal已用完但未清除

920 2K

在Java中,有许多技术可以确保线程安全。你可以使用synchronized和Lock等关键字来锁定代码块。但它们有一个共同的特点,那就是锁定会对代码的性能产生一定的损失。其实,JDK中还提供了另一种.

JVM外部调试工具:JMXTerm

1074 6K

JMX 公开了管理“bean”(MBean),这些是表示应用程序中控制点的对象。您的应用程序可以发布自己的 bean,这让您可以公开运行时监控和配置的功能。这非常酷,因为您可以导出管理员可以直接连接到.

查看Java元空间区域

872 2K

有时您的应用程序可能会遇到本文中讨论“java.lang.OutOfMemoryError: Metaspace”。在这种情况下,您可能希望查看 JVM 的元空间区域中加载的内容是什么。简而言之,JV.

Golang简单内存节省技巧 | ribice

1467 9K

内存占用更小,基础设施成本降低,扩展变得更容易/延迟。尽管 Go 以不消耗大量内存而闻名,但仍有一些方法可以进一步减少消耗。其中一些需要大量重构,但很多都很容易做到。预先分配切片slices要理解这种.