Java 计算分配对象所需的内存
我想比较一下内存使用情况,分配Calendar对象和Joda的DateTime对象Java 计算分配对象所需的内存,java,Java,我想比较一下内存使用情况,分配Calendar对象和Joda的DateTime对象 // How much memory required to allocate 100 Calendar objects? for (int i = 0; i < 100; i++) { Calendar c = Calendar.getInstance(); l = l + c.getTimeInMillis(); CalendarList.add(c); } // How mu
// How much memory required to allocate 100 Calendar objects?
for (int i = 0; i < 100; i++) {
Calendar c = Calendar.getInstance();
l = l + c.getTimeInMillis();
CalendarList.add(c);
}
// How much memory required to allocate Joda TimeDate objects?
for (int i = 0; i < 100; i++) {
DateTime dateTime = new DateTime();
l = l + dateTime.getMillis();
DateTimeList.add(dateTime);
}
//分配100个日历对象需要多少内存?
对于(int i=0;i<100;i++){
Calendar c=Calendar.getInstance();
l=l+c.getTimeInMillis();
日历列表。添加(c);
}
//分配Joda TimeDate对象需要多少内存?
对于(int i=0;i<100;i++){
DateTime DateTime=新的DateTime();
l=l+dateTime.getMillis();
DateTimeList.add(日期时间);
}
我可以知道我可以添加一些代码来测量吗?您可以使用该工具,在那里您可以看到哪些对象占用了哪些内存。我不认为有一个“代码内”的解决方案在所有情况下都是正确的,只需要几行代码 您可以查看以下内容使用工具获取内存使用提示:
public class MemUsage {
public static void main(String[] args) {
Instrumentation instr = InstrumentationAgent.getInstrumentation();
if (instr == null) {
System.err.println("No Instrumentation, use the VM option \"-javaagent:Instrumentation.jar\"");
return;
}
System.out.println();
System.out.println("an implementation-specific approximation of the amount of storage");
System.out.println("Calendar = " + instr.getObjectSize(Calendar.getInstance()));
System.out.println();
}
}
其他选择:但我从未使用过