`
陈谏辉
  • 浏览: 49258 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

java对象占用内存大小计算方法

阅读更多

public static void main(String[] args) {

Map testMap = new HashMap();
Product p= null;
long start = 0;
long end = 0;
System.gc();
start = Runtime.getRuntime().freeMemory();
System.out.println("+++++++++++++++++测试HashMap开始++"+Formater.formatAsLong(new Date())+"++++++++++++++++");
for(int i=0;i<20000;i++){
p=new Product();//20个属性的大对象
p.setProductCode(i+"dfsdf");
p.setProductName(i+"namessssssdfsdfssss");
testMap.put(i, p);
}
//servletContext.setAttribute("productHashMap",testMap);
System.gc();
end = Runtime.getRuntime().freeMemory();
System.out.println("一个HashMap对象占内存:" + (start-end)/1024.0/1024.0);//MB
// 测试 2万条数据 占26.96MB空间
// 测试 5万条数据比较轻松 占73.8MB空间
System.out.println("+++++++++++++++++测试HashMap结束+++++"+Formater.formatAsLong(new Date())+"++++Size:"+testMap.size()+"++++++++++++");

}

分享到:
评论

相关推荐

    测试java对象占用内存大小的例子

    本示例主要探讨如何测试Java对象占用的内存大小,以便更好地理解内存使用情况。 首先,`SizeOf.java`可能是一个实现自定义内存大小计算的类。在Java中,由于垃圾回收机制的存在,直接获取对象的内存占用并不像C++等...

    计算一个Java对象占用字节数的方法

    本篇文章将深入探讨如何计算Java对象占用的内存字节数,以及影响这一数值的因素。 首先,Java对象在堆内存中由四个部分组成:对象头(A)、基本类型域(B)、引用类型域(C)和填充物(D)。 **对象头(A)**: ...

    JAVA对象所占内存大小计算例子

    总结起来,Java对象的内存大小计算涉及对象头、实例数据和对齐填充的综合考虑。通过`Unsafe`类或`Instrumentation`接口,我们可以获取这些组成部分的具体大小,进而了解一个Java对象在内存中的占用情况。这样的知识...

    java-sizeof-0.0.4:一个查看java对象占用内存大小

    了解对象占用的内存大小有助于我们优化资源使用,减少内存泄漏,并提高程序效率。 "java-sizeof-0.0.4"是一个用于分析Java对象内存占用的工具,它可以帮助开发者更好地理解对象在运行时的内存消耗。这个工具提供了...

    统计缓存(java对象所占的内存)大小

    在Java编程环境中,了解对象占用的内存大小是优化性能的关键步骤。这可以帮助我们避免内存泄漏,提高应用程序的效率。本文将深入探讨如何统计缓存(尤其是Java对象)所占的内存大小,以及这对理解程序内存消耗的重要...

    计算java对象大小

    这篇博客文章可能探讨了如何通过不同的工具和技术来估算Java对象在内存中的占用空间。 首先,Java对象的大小不是固定不变的,它取决于对象的类结构,包括类中的属性数量、类型以及虚拟机的实现。每个对象都会有一个...

    java字符串内存计算

    在Java中,直接获取一个对象所占用的内存大小并非易事。常见的做法是在运行特定代码之前记录当前的内存状态,待代码执行完成后,触发垃圾回收机制,并再次记录内存状态。通过对比两次内存状态的变化,可以估算出代码...

    java 通过sizeOf计算一个对象的大小

    在Java编程语言中,了解一个对象的内存大小是很有用的,特别是在性能调优和内存管理方面。`sizeOf`通常是指用来计算对象在内存中占用空间的一种方法。本篇文章将探讨如何通过Java来实现这样的功能,以及相关知识点。...

    计算对象占用内存空间ObjectSize-master.zip

    "计算对象占用内存空间ObjectSize-master.zip" 提供的工具可能是一个帮助开发者分析和估算对象在内存中占用大小的解决方案。这样的工具对于调试、性能调优以及避免内存泄漏至关重要。 在Java中,对象的内存占用不...

    测量Java对象大小的demo

    本示例“测量Java对象大小的demo”提供了一种方法,通过使用Java的`java.lang.instrument`包来注入`javaagent`,进而利用`Instrumentation`接口测量Java对象的精确内存占用。下面我们将详细探讨这一过程。 首先,`...

    JAVA技巧(Java多线程运行时,减少内存占用量).pdf

    本文介绍了在Java多线程环境下减少内存占用量的一些关键策略,包括线程生命周期管理、对象生命周期设计、同步机制选择、线程池的使用和线程数量控制。同时,代码的异常处理和JVM参数调优也是提升多线程应用性能的...

    为什么Java程序占用的内存比实际分配的多

    Java程序在运行过程中占用的内存通常比通过-Xmx和-Xms参数所设定的堆内存大小要多,这是由于Java程序的内存消耗不仅限于堆内存。以下是对各个影响因素的详细解析: 1. **对象(Objects)**:这是Java程序中最基本的...

    java实现内存动态分配

    Java的垃圾回收机制(Garbage Collection, GC)负责自动回收不再使用的对象所占用的堆内存。当一个对象不再有引用指向它时,该对象成为垃圾,GC会在适当的时候将其回收,释放内存。在实验中,虽然没有直接涉及垃圾...

    完美解决java读取excel内存溢出问题.rar

    3. **设置合适的内存参数**:在JVM启动时,可以增加堆内存大小,例如使用`-Xms`和`-Xmx`选项。然而,这并不是长久之计,因为增加内存可能会导致其他问题,如垃圾收集性能下降。 4. **减少对象创建**:在处理Excel...

    java进程占用CPU和内存太高问题排查相关测试文件.zip

    通过使用像VisualVM、MAT(Memory Analyzer Tool)这样的工具分析这个文件,可以发现内存中的对象分布,查找内存泄漏的线索,以及识别哪些类或对象占用了大量内存。 3. **Javapc工具**: `javapc`可能是指Java程序...

    javamemory_JAVA内存监视器_java_

    为了更好地评估内存消耗,还可以使用内存分析工具,例如MAT(Memory Analyzer Tool)或YourKit Java Profiler,它们可以深入分析堆转储文件,帮助定位内存占用高的对象和引用链,找出导致内存泄漏的原因。...

    深入理解Java 虚拟机内存模型.rar

    - **对象创建与分配**:Java对象通常在堆上创建,通过new关键字或者反射实现。 - **垃圾收集(Garbage Collection, GC)**:自动内存管理,清理不再使用的对象,防止内存泄漏。包括新生代GC(Minor GC)、老年代GC...

    Java内存溢出和内存泄露共4页.pdf.zip

    内存溢出通常发生在堆内存,当创建的对象过多或者单个对象占用过大内存时,若无法正常回收,就可能导致溢出。 内存泄露则是在程序运行过程中,已经不再使用的对象没有被正确地释放,这部分内存虽然在逻辑上已经不...

    如何计算Java对象占用了多少空间?

    这里我们将深入探讨计算Java对象占用空间的方法。 首先,每个Java对象都包含一个对象头(Object Header),它存储了一些元数据信息。对象头通常由两部分组成: 1. **Mark Word**: 这部分存储了对象的哈希码、锁...

    深入Java核心 Java内存分配原理精讲(对于没有接触过java内存的程序员很有用)

    堆内存则为对象和数组提供动态的存储空间,尽管访问速度略慢于栈,但它允许程序员创建任意数量和大小的对象,极大地增强了Java的可扩展性和适应性。常量池则优化了编译过程,提高了程序的执行效率。 通过深入了解...

Global site tag (gtag.js) - Google Analytics