首页 > 系统相关 >java查看对象占用内存的大小

java查看对象占用内存的大小

时间:2023-04-17 17:48:33浏览次数:32  
标签:core java 占用 jar lucene 内存 apache org

1.首先引入jar包 lucene-core-4.7.2.jar

    <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-core</artifactId>
        <version>4.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.12.0</version>
    </dependency>

2.java代码示例如下

for (int i = 0; i <100000; i++) {
            TravelAccountBillInfo info = new TravelAccountBillInfo();
            billInfoList.add(info);
            logVoucherError(workLogsPath,"添加第"+i+"个对象,集合大小="+billInfoList.size());
            logVoucherError(workLogsPath,"内存占用大小="+RamUsageEstimator.humanSizeOf(billInfoList));
        }

我们这里把日志记录在一个txt里面了,这里的 humanSizeOf大小打印出来的会自动进行转换成KB,MB

 

 

标签:core,java,占用,jar,lucene,内存,apache,org
From: https://www.cnblogs.com/ketoli/p/17326561.html

相关文章

  • 通过JAVA语言如何获取淘宝/天猫搜索词推荐
    Java是一种跨平台的、面向对象的高级编程语言,主要用来进行网站后台开发和AndroidAPP开发,同时它是全球最受欢迎的编程语言之一,在世界编程语言排行榜TIOBE中,Java一直霸占着前三名,有好多年甚至都是获得了第一名。那么为什么Java会如此受欢迎呢?Java是一种半编译型语言,开发比......
  • Java与Mysql锁相关知识总结
    锁的定义在计算机程序中锁用于独占资源,获取到锁才可以操作对应的资源。锁的实现锁在计算机底层的实现,依赖于CPU提供的CAS指令(compareandswsp),对于一个内存地址,会比较原值以及尝试去修改的值,通过值是否修改成功,来表示是否强占到了这个锁。JVM中的锁jvm中,有2个常用的锁synchr......
  • javascript
    1970.1.1互联网开始时间**JavaScript(开发Web页面的脚本语言)**是面向Web的编程语言,获得了所有网页浏览器的支持,是目前使用最广泛的脚本编程语言之一,也是网页设计和Web应用必须掌握的基本工具。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最......
  • 关于Java中值传递和址传递
    参数传递在Java中有两种类型值和址其实本质都是一份拷贝在调用函数的时候进行压栈传进来的参数会被开辟一份新的空间传基本类型是把值传过去传引用数据类型是实例指向实参voidm(intv){//基本数据类型传值是一份拷贝不会影响实参v++}voidm(int[]arr){//底层i......
  • Java集合框架
    Java集合框架概述Java集合框架是一个抽象数据类型的框架,它提供了一组接口和类,可用于处理各种类型的数据结构,如列表、队列、集、映射等。Java集合框架的主要特点是:1、可扩展性:Java集合框架提供了一组可扩展的接口和类,可让开发人员根据自己的需要实现新的数据结构和算法。2、高性能:Ja......
  • Java8新特性4_强大的Stream
    StreamAPI了解StreamJava8中有两个比较大的改变Lambda表达式StreamAPI(java.util.stream.*)Stream是Java8中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找,过滤和映射数据等操作。使用StreamAPI对集合数据进行操作,就类似于使用SQL执行的......
  • Java8新特性5_并行流
    并行流与顺序流并行流并行流就是把一个内容分成多个数据库,并用不同的线程分别处理每个数据块的流Java8中将并行流进行了优化,我们可以很容易的对数据进行并行操作,StreamAPI可以声明性的通过parallel()与sequential()在并行流与顺序流之间进行切换Fork/Join框架概念Fork/J......
  • Java8新特性6_Optional容器类
    Optional类概念Optional类是一个容器类,代表一个值存在或者不存在,原来null表示一个值不存在,现在Optional可以更好的表达这个概念,并且可以规避空指针异常常用方法Optional.of:创建一个Optional实例Optional.empty:创建一个空的Optional实例Optional.ofNullable:若t不为null......
  • Java8新特性1_HashMap变化
    Java8新特性主要特性Lambda表达式函数式接口方法引用与构造器引用StreamAPI接口中默认方法与静态方法新时间日期API最大化减少空指针异常(Optional)。。。。HashMap1.7在JDK1.7到JDK1.8的时候,对HashMap做了优化首先JDK1.7的HashMap当出现Hash碰撞的时候,最后插入的......
  • Java8新特性2_Lambda表达式
    Lambda表达式为什么要用Lambda表达式Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码,将代码像数据一样传递,这样可以写出更简洁、更灵活的代码,作为一个更紧凑的代码风格,使Java语言表达能力得到了提升实例代码Lambda表达式最先替代的就是匿名内部类,假设......