我看到this link使用Instrumentation
来计算运行时对象的大小。我决定尝试这个库,因为它确实有助于确定大数据结构的大小。
所以我使用TrySizeOf
IDE:
NetBeans
的新项目中编写了以下代码
package trysizeof;
import net.sourceforge.sizeof.SizeOf;
public class TrySizeOf {
public static void main(String[] args) {
String s = "abc";
System.out.println(SizeOf.deepSizeOf(s));
}
}
之后我在项目中创建了一个名为lib
的文件夹,并在其中放置了SizeOf.jar
。然后在Project->Properties->Run
下面放置了以下参数:
-javaagent:/home/MyUserName/NetBeansProjects/TrySizeOf/lib/SizeOf.jar
但是,当我尝试运行我的项目时,我收到以下错误:
VM初始化期间发生错误
打开zip文件或缺少JAR清单时出错:/home/MyUserName/NetBeansProjects/TrySizeOf/lib/SizeOf.jar
代理库无法初始化:仪器
任何人都能帮助我吗?或者解释我做错了什么?
更新
我发现错误,这是大小写的问题。当我第一次开始这个项目时,我做了一个大小写错字。当我注意它时,我修复它,但我一直得到同样的错误(但路径是固定的)。现在,我尝试使用clean和build,项目工作正常。这是当我做一个干净的构建manifest
文件得到更新,用于指定premain方法的路径。当我尝试清理和构建文件得到更新,项目终于工作。感谢关于我的帖子中的拼写错误的评论,这让我想到了这一点。