当前位置: 首页 > 面试题库 >

特定对象列表的内存使用情况

尉迟宇定
2023-03-14
问题内容

我有一个简单的pojos(一个用户类)的列表,其中包含约15个简单字段和1个arrayList。这些代表用户,可能会将100或1000个用户存储在内存中,以避免每次都从外部系统检索它们。(我正在使用Ehcache)

我想通过junit测试知道K个用户列表使用了多少内存。 我的直觉是,即使像一千个这样的简单pojo也不会以任何方式威胁(换言之,小于100 Ko)

在此先感谢您的协助。我非常感谢您的帮助。


问题答案:

在创建对象之前和之后,为了可以计算由JRE使用的内存 近似 多少字节正在使用你的对象

System.gc();
System.runFinalization();
Thread.sleep(1000);
long before = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();

//build object here

System.gc();
System.runFinalization();
Thread.sleep(1000);
long after = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();

long objectSize = after - before;


 类似资料:
  • 问题内容: 我正在使用iPython运行我的代码。我想知道是否有任何模块或命令可以让我检查对象的内存使用情况。例如: 类似于并返回对象使用的内存。 问题答案: 不幸的是,这是不可能的,但是有很多近似答案的方法: 对于非常简单的对象(例如,整数,字符串,浮点数,双精度数),它们或多或少地表示为简单的C语言类型,您可以像John Mulder的解决方案那样简单地计算字节数。 对于更复杂的对象,一个很好

  • 我有这样一个实体: 和相关的JSON: 我试图在Spring MVC@Controller中以如下方式对其进行反序列化: 添加

  • 给定: 我想把所有的车都标出来。将轮胎分为单独的轮胎板。我知道我可以做一个

  • 问题内容: 说我有一个对象列表,其中包含两个字段和,均为String类型。 如果有可能,如何在不迭代列表的情况下获取所有值的列表? 问题答案: 对象是对内存地址的引用。然后,该对象的字段是指向其他内存地址的其他引用。因此,对象列表是引用列表。因此,列表不可能直接访问对象字段(由引用给出的引用)。最简洁的答案是不。 注意:无论如何,您都会找到可以实现所需功能的API,但该API仍在内部循环。

  • 我想保存对象(产品)与列表对象(属性)和有问题,因为我需要使用输入文本的对象属性。 产品实体 属性实体 我在百里香的表格。 我如何无法输入好的保存对象产品?控制器

  • 我在Deck类中创建一个问题对象列表。我读取Json文件并将其传递给String,然后简单地使用Gson创建对象列表。但那不起作用:/你有谢谢你的主意吗。这是我的Json文件: 这是我的问题构造器: 这是我的甲板建造师: 这是我的主要代码: res1是我以字符串格式获得的Json文件,因此res2应该包含一个与Json文件相关的对象列表,但列表中没有任何内容。