内存泄漏指南

     
  • Spring中@Transactional可防止连接池泄漏

    61 6K

    在任何微服务中,精确管理数据库交互对于维护应用程序性能和可靠性至关重要 。通常,我们会在 性能测试时解决数据库连接方面的奇怪问题。最近, Spring 微服务应用程序的存储库层出现了一个关键问题,异常.

  • Spring中@Transactional事务使用陷阱

    44 2K

    事务是数据库管理中的基本概念,可确保多个数据库操作之间的数据一致性。 Spring 提供了@Transactional注释来简化应用程序中的事务管理。但有效地运用这种力量需要了解其细微差别。就像任何强.

  • Rust内存安全解释

    111 1 2K

    是什么让 Rust 语言成为编写快速、内存安全应用程序的最佳语言之一? Rust 的内存安全功能已融入到语言本身中。Rust 如何以其他语言无法做到的方式保证内存安全?Rust 内存安全:本机语言功能.

  • C++ 创建者反驳白宫警告

    96

    美国白宫在 2 月 26 日发布的一份报告中呼吁开发人员使用不存在内存安全漏洞的编程语言,从而降低网络攻击的风险。 报告列举了 C++ 和 C 这两种存在内存安全漏洞的语言。 C++ 创始人 Bjar.

  • Java中捕获OutOfMemoryError

    113 2K

    在本教程中,我们将学习如何在发生OutOfMemoryError时显式停止应用程序。在某些情况下,如果没有正确的处理,我们可能会在不正确的状态下继续处理应用程序。什么是OutOfMemoryError.

  • 能防止大部分C程序内存泄漏的解决办法?

    75 2K

    自 C 语言存在以来,内存泄漏就一直困扰着该语言。人们提出了许多解决方案,甚至建议我们用其他语言重写 C 程序。但还有更好的方法。这里介绍的是一个简单的解决方案,它将消除每个 C 程序的内存泄漏。将其.

  • 解决常见Java性能问题的6个技巧

    266 10K

    虽然 Java 的优势在于其平台独立性、强大的库和广泛的生态系统,但解决性能问题是充分利用其功能的关键。1.内存泄漏有人会问,既然 Java 通过垃圾回收器实现了自动内存管理,这怎么可能呢?的确,Ja.

  • Java中堆转储、线程转储和核心转储比较

    132 6K

    转储是指从存储介质检索并保存以供后续分析的信息。Java虚拟机(JVM)在Java内存管理中起着至关重要的作用,当出现错误时,可以从JVM中获取转储文件以方便错误诊断。在Java中,堆转储(Heap .

  • Java中try-with-resources与try-finally比较

    91

    try-with-resources 和 try-finally 都是用于资源管理的机制,但它们在语法和功能上有一些不同。1. try-with-resources 引入版本: Java 7+ 语法:.

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

    90 5K

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

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

    167

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

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

    591 4K

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

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

    538

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

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

    689

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

  • Quarkus Native 采用 Adaptive GC 策略

    777 2K

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

  • JEP 254能节省多少内存?

    820 8K

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

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

    877

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

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

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

    980

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

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

    1487 2K

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

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

    941 2K

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

  • JVM外部调试工具:JMXTerm

    1110 6K

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

  • 查看Java元空间区域

    904 2K

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

  • Golang简单内存节省技巧 | ribice

    1504 7K

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

  • 修复Rust中的内存泄漏 - onesignal

    1496

    在 OneSignal,我们喜欢 Rust。我们之前写过博客,介绍了将我们的一些核心业务系统转为 Rust,该语言在过去几年中发生了怎样的变化,以及我们了解到的关于线程安全模型的有趣事情。除了我们的推.

  • Rust中实现内存与性能可视化分析的工具有哪些? - Reddit

    2850 2K

    Rust有没有像go语言中pprof这样的内存和性能可视化分析工具?1、可使用https://github.com/KDE/heaptrack实现内存分析,虽然不是特定针对Rust2、Rust 使用与.

  • 迁移到JDK18为何写一个空的finalize()方法?

    952 6K

    现在JEP 421(Deprecate Finalization for Removal)已经在 J​​DK 18 中交付,似乎越来越多的人在谈论 finalization 以及如何迁移到替代方案,例.

  • JVM的GC理论知识 – Bare.Metal.Dev

    707

    为了充分理解 JVM 的内部工作原理,我决定在垃圾收集理论方面投入一些时间。Java 中使用的实际算法现在非常健壮,尽管我想深入了解事情的真相。因此,我得到了两本关于 GC 最受好评的书—— 《自动动.

  • Java对象重用如何降低延迟并提高性能 - Minborg

    1908 2 3K

    通过阅读本文熟悉对象重用的艺术,并了解多线程 Java 应用程序中不同重用策略的优缺点。这允许您以更少的延迟编写更高性能的代码。虽然在 Java 等面向对象的语言中使用对象提供了一种很好的抽象复杂性的.

  • 从内存管理策略看Rust独特性 - Khorchanov

    1333 1

    我是一名 Java 开发人员,我知道在开发关键的安全应用程序时使用这种语言的主要优点和缺点。每个人接近 Java 的主要内容是它的 GC(又名垃圾收集器)。最早提出开箱即用的自动内存管理的语言是它。还.