Java,如何找出哪个类或方法使用了大量内存?

2024-01-04

这是我的 Java 项目的一日内存曲线。如何找出哪个类或方法使用了大量内存?


你需要一个可以做到的工具JVM 分配分析 https://www.google.com/search?q=jvm%20allocation%20profiling.

Java Flight Recorder (JFR) 可以帮助您进行低开销分配分析(1 https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/memleaks001.html, 2 http://hirt.se/blog/?p=381— 对于旧版本的文档,UI 现在看起来完全不同,但“分配”和“TLAB”仍然是用于查找内容的词)。确保分配分析已启用 https://stackoverflow.com/questions/19056826/java-mission-control-heap-profile在您使用的设置中。在 OpenJDK 11 之前,这是一个商业功能。他们说,现在其他一些工具也可以以较低的开销实现这一点(例如异步分析器 https://github.com/jvm-profiling-tools/async-profiler).

如果您不关心您的应用程序变得慢得无法使用并且使用的是 JDK 检查“设置”>“内存设置”> 检查“记录分配堆栈跟踪”。开始分析,等待,等待,等待,确定最大的分配,右键单击“拍摄快照并显示分配堆栈跟踪”。看起来像你的套件基本上是一样的 https://www.yourkit.com/docs/java/help/allocations.jsp,以及 JProfiler(他们称之为“分配记录”)。再次强调:会大大减慢应用程序的速度,所以不要在产品中使用它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java,如何找出哪个类或方法使用了大量内存? 的相关文章

随机推荐

  • 在 Java 中如何将 double 类型转换为 int 类型?

    我正在看http docs oracle com javase 6 docs api java lang Double html http docs oracle com javase 6 docs api java lang Double
  • .NET - ClickOnce Install - 公司名称和应用程序名称

    在 ClickOnce 应用程序中设置公司名称和应用程序名称的正确方法是什么 我在名为 RecordNavigator 的解决方案中有一组项目 GUI 项目称为 RecordNavigator Gui 当我发布应用程序时 我希望 开始 菜单
  • 在 C# 中使用 WinSCard API 读/写 SLE4442 存储卡

    一些背景信息 为了读取 写入 SLE4442 存储卡 我的应用程序当前使用 Omnikey Cardman 3021 USB 读卡器 这是一个 Sumbsembly 智能卡 API 外部 dll 它能够包装 CT API 调用 定向到 om
  • 防止在移动 Safari (iPad / iPhone) 中长按/长按时出现默认上下文菜单

    对于网站 我想在用户 长按 屏幕时显示自定义上下文菜单 我创建了一个jQuery 长按 https github com pisi Longclick我的代码中的侦听器以显示自定义上下文菜单 显示上下文菜单 但也显示 iPad 的默认上下文
  • ABP.IO - Blazor WebAssembly - 租户特定登录

    我在我的项目中使用 ABP IO Blazor 模板 尝试构建一个简单的多租户门户 我遇到的问题是试图避免最终用户在登录屏幕上选择特定租户 使用此页面作为我的参考 https docs abp io en abp latest 多租户 ht
  • SVN 使用通配符删除?

    我正在将 VSS 存储库迁移到 SVN 并在第一次签入时无意中包含了所有 vti cnf scc 文件 我想从 SVN 中删除这些 当然不是永久的 只是在头脑中 相关应用程序非常大 逐个文件夹查找和删除这些文件将花费很长时间 建议 一定有一
  • 将 JSON 字符串中的数据叠加到现有对象实例

    我想反序列化一个 JSON 字符串 该字符串不一定包含每个成员的数据 例如 public class MyStructure public string Field1 public string Field2 假设我有一个实例 Field1
  • 部分屏幕截图和图像质量损失

    我正在打印相机胶卷 电子邮件 短信 FB Twitter 等的部分屏幕截图 选择了部分屏幕 从顶部开始 100 像素 从底部开始 100 像素 我使用了以下代码 let top CGFloat 100 let bottom CGFloat
  • 使用 NSUserDefaults 存储 UISwitch 状态

    我正在努力坚持UISwitch在我的应用程序的设置视图中说明 基本上它是一个UITableView并包含一些开关来获取用户首选项 下面的代码解释了开关的构造方式 下面只给出了一种开关构造 其他的也以同样的方式构造 if cell nil c
  • 在 Xcode 4.3.1 中使用 libc++ 时如何获得合理的变量显示?

    我使用 Xcode 4 3 1 的 C 11 语言方言以及 libc 作为标准库 这种组合的语言支持令人惊叹 但调试却是一种折磨 Xcode 的 摘要格式 和 lldb 的摘要格式功能都不会以漂亮的打印方式显示任何标准类型 std stri
  • 除了以 /api 开头的路由之外,为所有路由运行快速中间件?

    我有一个 Express 中间件 可以像这样在服务器上渲染 React 放置在所有其他路由之后的末尾 app use function req res Router run routes req path function Handler
  • Android、NSD/DNS-SD:NsdManager 不可靠的发现和 IP 解析

    在过去的几周里 Android 的 NSD 实现让我抓狂 从用户的角度来看 会出现以下问题 设备以完全不确定的方式发现彼此 如果我启动我的NsdManager基于应用程序 如果只涉及两个设备 它或多或少可以工作 如果第三个设备加入 它很少会
  • AngularJS 多页面应用程序网站样板网站结构建议

    我正在寻找一些有关创建由 Laravel 后端服务的 AngularJs 多页面应用程序的指导 网上的所有 Web 应用程序教程都指向创建 SPA 而我刚刚开始使用 Angular 所以请对我放轻松 产品页面示例 http example
  • 在 python 和 swift 之间交换加密消息

    我需要一个 python 代码和一个 swift 代码交换加密消息 这是我尝试过的 Fernet 在审查了这些选项之后 我认为对称密钥算法效果很好 在 python 中 像往常一样 它是加密和解密简单 https cryptography
  • 将解决方案转换为 pdf 或 doc 文件

    这似乎是一个奇怪的问题 但我需要将我的代码转换为 pdf 这样我就可以将其提交 是的 遗憾的是学校系统要求将 CD 上的代码作为 pdf 格式 我能做的就是打开解决方案中的每个类并复制粘贴它 但是 作为一名程序员 我很懒 想知道 Visua
  • 在 QTCreator 中使用 MinGW 编译 c++ 和 cuda 代码

    我正在尝试编译简单的cuda程序 我从在 Windows 上的 Qt Creator 中编译 Cuda 代码 https stackoverflow com questions 12266264 compiling cuda code in
  • C++ 中的斐波那契数列

    include
  • 将一个表中的多个列连接到另一个表中的单个列

    我正在创建一个从两个表 Schedule 和 Reference 中提取数据的视图 Schedule 有 50 多列 它几乎完全非规范化 不是我的设计 其中大部分包含可以连接到参考表中的列的值 如何编写 SQL 语句以将 Schedules
  • 无法使用 C# 连接到启用 OnVif 的相机

    我是第一次使用 IPCam 并尝试连接到 OnVif 摄像机 我查看了各种论坛和堆栈溢出 并提出了以下代码 我知道该代码没有做任何有用的事情 但它现在只是一个概念证明 它找到我网络上的所有 4 个摄像头 然后我手动连接到其中一个摄像头以拉回
  • Java,如何找出哪个类或方法使用了大量内存?

    这是我的 Java 项目的一日内存曲线 如何找出哪个类或方法使用了大量内存 你需要一个可以做到的工具JVM 分配分析 https www google com search q jvm 20allocation 20profiling Ja