java - 有没有办法知道java中某个函数使用了多少内存?

标签 java performance memory

我正在对大文件的转换算法进行执行分析。我想知道是否可以计算我正在使用的不同文件的函数所需的内存大小。

最佳答案

在 Java 中,了解给定程序(更不用说函数)的峰值内存需求是有问题的,因为垃圾收集器很懒,并且在启动和收集垃圾之前让程序增长到最大可用内存。因此,很难区分程序生成多少垃圾与程序实际至少需要多少内存。

我们之前使用的一种低技术方法是将相关函数隔离到具有 main 方法的单独程序中,并使用不同的 -Xmx 值运行它,从例如 256m 并将值减半(例如 128、64、32,...),直到程序抛出 OutOfMemoryError。在大多数情况下,您可以在十几次调用内达到它,给出几 MB 的精度范围(要了解基线 JVM 需求,请使用简单的“hello-world”程序重复这些步骤并减去该数字)。您甚至可以回溯并逐步增加该值,以更准确地了解所需的值,尽管通常一个大概的数字就足够了。

关于java - 有没有办法知道java中某个函数使用了多少内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61996744/

相关文章:

Mysql 与 Node.js : Does it make sense to have node. js 一直在数据库中保存/加载内容?

java - SQLGrammarException : No value specified for parameter 1 hibernate

c++ - 有什么方法可以检查迭代器是否有效?

jquery - 使用 IIS 静态内容服务与从 SQL Server Jquery WCF 获取数据之间的性能差异

java - JAVA 为堆栈上的对象而不是堆上的对象预分配内存

java - 我的表程序有问题。有人能告诉我如何解决吗?

.net - .NET字典,速度惊人,但它是如何工作的?

java - 在 Ubuntu 中执行 Jmeter 脚本,遇到错误

java - API指纹Android

java - 使用 Spring WebClient 响应式读取行