内存泄漏指南
C++ 创建者反驳白宫警告
美国白宫在 2 月 26 日发布的一份报告中呼吁开发人员使用不存在内存安全漏洞的编程语言,从而降低网络攻击的风险。 报告列举了 C++ 和 C 这两种存在内存安全漏洞的语言。 C++ 创始人 Bjar.
Java中捕获OutOfMemoryError
在本教程中,我们将学习如何在发生OutOfMemoryError时显式停止应用程序。在某些情况下,如果没有正确的处理,我们可能会在不正确的状态下继续处理应用程序。什么是OutOfMemoryError.
能防止大部分C程序内存泄漏的解决办法?
自 C 语言存在以来,内存泄漏就一直困扰着该语言。人们提出了许多解决方案,甚至建议我们用其他语言重写 C 程序。但还有更好的方法。这里介绍的是一个简单的解决方案,它将消除每个 C 程序的内存泄漏。将其.
解决常见Java性能问题的6个技巧
虽然 Java 的优势在于其平台独立性、强大的库和广泛的生态系统,但解决性能问题是充分利用其功能的关键。1.内存泄漏有人会问,既然 Java 通过垃圾回收器实现了自动内存管理,这怎么可能呢?的确,Ja.
Java中堆转储、线程转储和核心转储比较
转储是指从存储介质检索并保存以供后续分析的信息。Java虚拟机(JVM)在Java内存管理中起着至关重要的作用,当出现错误时,可以从JVM中获取转储文件以方便错误诊断。在Java中,堆转储(Heap .
Java中try-with-resources与try-finally比较
try-with-resources 和 try-finally 都是用于资源管理的机制,但它们在语法和功能上有一些不同。1. try-with-resources 引入版本: Java 7+ 语法:.
Java中标记清除垃圾收集算法
垃圾收集算法(例如标记和清除)在后台运行,以管理 C++ 和 Java 等编程语言中的内存。当动态创建对象时,它们会占用堆中的内存。但是,如果我们继续创建对象而不释放内存,则可能会导致内存不足错误。为.
简短比较三个 Java现代垃圾回收器
最新版本的 Java 中引入了三个现代垃圾收集器,以下是三个场景比较:G1 收集器专为以下应用而设计: 可以与应用程序线程并发操作。 紧凑的可用空间,没有长时间的 GC 引起的暂停时间。 需要更可预测.
Rust 如何在没有垃圾收集器的情况下解决内存管理问题?
每个计算机程序都需要内存和管理内存的方法。传统的内存管理范式要么容易出错,要么性能很差。Rust的内存管理系统是独一无二的,因为它无需使用垃圾收集器就能提供内存安全和可预测的高性能。栈Stack和堆h.
Java最新垃圾回收器ZGC升级:世代ZGC
ZGC ( JEP 333 ) 专为低延迟和高可扩展性而设计。自 JDK 15 ( JEP 377 )以来,它已可用于生产。ZGC 在应用程序线程运行时完成大部分工作,只是短暂地暂停这些线程。ZGC .
使用JDK飞行记录器和一些SQL查找Java线程泄漏 - Gunnar Morling
配备 JDK Flight Recorder、JDK Mission Control 和 JFR Analytics,识别和修复 Java 应用程序中的线程泄漏正在成为一项相对简单的任务。分析可疑线程.
Quarkus Native 采用 Adaptive GC 策略
从 Quarkus 2.13.6.Final 开始,本机Native运行时垃圾收集策略已切换,以提供更一致和可预测的运行时性能。在 2022 年的某个时候,在进行一些本机运行时性能基准测试时,我们观察.
JEP 254能节省多少内存?
JEP 254将字符串中 的char[] 替换 为 byte[] 会节省多少内存?让我们看看 JEP 254 的实际影响。JEP 254 提案后,Java 的字符串从 Java 9 开始被压缩。如果所.
SpringBoot如何在关闭容器之前实现自己逻辑?
有时,我们需要在关闭spring容器之前做一些额外的工作,比如关闭资源文件。这时,你可以实现DisposableBean接口并重写其destroy方法。@Servicepublic class DSe.
为什么我要实现一个安全的Rust并发循环收集器
Java使用默认线程池的陷阱问题
我们都知道JDK1.5之后提供了ThreadPoolExecutor类,可以用来自定义线程池。线程池有很多好处,比如: 减少资源消耗,避免频繁创建和销毁线程,可以直接复用已有线程。 提供速度,任务来了.
SpringBoot异步注释@Async的并发陷阱
在 Java 并发编程中实现异步函数之前,一般需要使用线程或线程池。线程池的底层也使用线程。要实现一个线程,要么继承Thread类,要么实现Runnable接口,然后在run方法中编写具体的业务逻辑代.
Java并发编程Bug:ThreadLocal已用完但未清除
在Java中,有许多技术可以确保线程安全。你可以使用synchronized和Lock等关键字来锁定代码块。但它们有一个共同的特点,那就是锁定会对代码的性能产生一定的损失。其实,JDK中还提供了另一种.
JVM外部调试工具:JMXTerm
JMX 公开了管理“bean”(MBean),这些是表示应用程序中控制点的对象。您的应用程序可以发布自己的 bean,这让您可以公开运行时监控和配置的功能。这非常酷,因为您可以导出管理员可以直接连接到.
查看Java元空间区域
有时您的应用程序可能会遇到本文中讨论“java.lang.OutOfMemoryError: Metaspace”。在这种情况下,您可能希望查看 JVM 的元空间区域中加载的内容是什么。简而言之,JV.
Golang简单内存节省技巧 | ribice
内存占用更小,基础设施成本降低,扩展变得更容易/延迟。尽管 Go 以不消耗大量内存而闻名,但仍有一些方法可以进一步减少消耗。其中一些需要大量重构,但很多都很容易做到。预先分配切片slices要理解这种.
修复Rust中的内存泄漏 - onesignal
在 OneSignal,我们喜欢 Rust。我们之前写过博客,介绍了将我们的一些核心业务系统转为 Rust,该语言在过去几年中发生了怎样的变化,以及我们了解到的关于线程安全模型的有趣事情。除了我们的推.
Rust中实现内存与性能可视化分析的工具有哪些? - Reddit
Rust有没有像go语言中pprof这样的内存和性能可视化分析工具?1、可使用https://github.com/KDE/heaptrack实现内存分析,虽然不是特定针对Rust2、Rust 使用与.
迁移到JDK18为何写一个空的finalize()方法?
现在JEP 421(Deprecate Finalization for Removal)已经在 JDK 18 中交付,似乎越来越多的人在谈论 finalization 以及如何迁移到替代方案,例.
JVM的GC理论知识 – Bare.Metal.Dev
为了充分理解 JVM 的内部工作原理,我决定在垃圾收集理论方面投入一些时间。Java 中使用的实际算法现在非常健壮,尽管我想深入了解事情的真相。因此,我得到了两本关于 GC 最受好评的书—— 《自动动.
Java对象重用如何降低延迟并提高性能 - Minborg
通过阅读本文熟悉对象重用的艺术,并了解多线程 Java 应用程序中不同重用策略的优缺点。这允许您以更少的延迟编写更高性能的代码。虽然在 Java 等面向对象的语言中使用对象提供了一种很好的抽象复杂性的.
从内存管理策略看Rust独特性 - Khorchanov
我是一名 Java 开发人员,我知道在开发关键的安全应用程序时使用这种语言的主要优点和缺点。每个人接近 Java 的主要内容是它的 GC(又名垃圾收集器)。最早提出开箱即用的自动内存管理的语言是它。还.
Spring Data Redis两个问题:内存泄露和并发 - europace
我们最近将会话管理从 MongoDB 迁移到了 Redis。迁移本身是由我们使用 MongoDB 的经验推动的,它不能特别好地处理高频率更新和更频繁的读取。另一方面,Redis 被称为经过验证的存储,.
为什么Go不再需要Java风格的GC?- itnext
Go、Julia 和 Rust 等现代语言不需要像 Java C# 使用的那些复杂的垃圾收集器,为什么?为了解释原因,我们需要了解垃圾收集器的工作原理以及不同语言如何以不同方式分配内存。然而,我们将首.
在Kubernetes上对JVM微调研究 - brunoborges
在Kubernetes上对Java的三个方面的研究: - ActiveProcessorCount - 默认GC - 默认Heap Sizing ActiveProcessorCount 当前匹配cp.