【问题标题】:Entity objects with very large no of less frequently initialized fields具有非常大的不经常初始化字段的实体对象
【发布时间】:2012-04-21 19:30:11
【问题描述】:

我的实体对象没有大量未初始化的字段,这些字段的数据类型从基元到集合对象等不等。但是问题是,在大多数情况下,并非所有字段都是必需的,因此它们未初始化。

每个用户请求都会创建和销毁大量此类实体对象!所以我有点担心这是否可能是内存或性能方面的问题?!除非需要,否则不会初始化字段。所以我想问一下,如果我在我的类中声明了很多字段但只初始化/使用几个字段,这是否真的很重要?

【问题讨论】:

标签: java object


【解决方案1】:

正如this java教程页面Fields that are declared but not initialized will be set to a reasonable default by the compiler. 这意味着您的每个未初始化字段将占用几个字节,对于 ints 和对象,通常为 4 个字节。

也就是说,这在很大程度上取决于您的特定系统 - 您的对象有多少字段,每个请求创建多少个对象,每秒有多少个请求等。这可能对不同的垃圾收集器产生不同的影响。

我建议您进行一些分析 - 查看当前对象和大量请求对系统(CPU、内存)的负载。然后,创建一些具有较少字段的假对象,并以相同的负载重新运行您的测试。如果您无法衡量任何差异,则可能没有什么可担心的,您可以使用一些额外的未使用字段。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    相关资源
    最近更新 更多