gpt4 book ai didi

java - 获取java类中方法使用的堆内存

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:40:38 25 4
gpt4 key购买 nike

我正在编写 Java 代码,我想运行一些性能测试。我只想获取我的类中的一个方法使用的堆内存。

 public AccessControl {

public boolean Allowed () {
code
}
public void print () {
code }
}

每次在运行时调用 Allowed 方法时,我都想获取 Java 中使用的堆内存。我读到我可以通过 HPROf 做到这一点,但我注意到 HPROf 不为方法提供内存计算,但只为类提供代码,我可以在方法中编写代码以获取可用内存然后使用内存吗?谢谢

最佳答案

没有“方法使用的堆内存”这样的东西。方法不占用堆内存,对象会。

如果您对在特定方法中创建的对象感兴趣(当然还有它直接和间接调用的方法),您可以比较方法调用前后创建的堆快照(可通过在调试器中运行来实现)并设置断点)。

但是您要解决的实际问题是什么?内存泄漏通常通过首先找到明显不必要的对象的 GC 根并使用调试器找出设置这些引用的位置和原因来诊断。

关于java - 获取java类中方法使用的堆内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3458911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com