【问题标题】:What is the benefit of computing age of an object?计算对象的年龄有什么好处?
【发布时间】:2015-10-17 06:07:52
【问题描述】:
  • 偶然发现了一个与 stackoverflow 中的日历对象相关的问题。阅读这个问题让我问自己一个问题:'如果我们能够找到一个物体的年龄怎么办?以小时/天/周/月/年表示的对象的年龄。我们能做些什么呢?会有帮助吗?它会帮助我分析我的程序运行时吗? '

  • 我想我们可以将单例对象的对象年龄联系起来,因为它存在于应用程序的生命周期中。从某种意义上说,从加载单例对象开始,它就开始了它的生命,并在应用程序结束时结束了生命。但同样可以扩展到非单例对象。

  • 我认为这个问题可能值得探讨,但我想从 stackoverflow 社区确认。您认为我们可能会在应用程序/系统的运行时遇到这样的场景,我们需要计算对象在 JVM 或运行时内存中的年龄等。通过计算,我们可以为应用程序做出一些决策。

  • 经过一些小研究,发现 Garbage-Collector 需要知道对象的年龄。

所以,我想知道的是:

  1. 如果我们能够找到物体的年龄怎么办?以小时/天/周/月/年表示的对象的年龄。我们可以用它做什么?
  2. 会有帮助吗?
  3. 它会帮助我们分析我的程序运行时并用它做些什么吗?它会是什么?
  4. 应用程序运行时/场景中哪些可能/可能的部分可能受益于对象的计算年龄?
  5. 您是否在开发/调试/现场问题期间遇到过这样的情况,您希望如果它能够计算对象的年龄,它会受益吗?

(希望这可能不会被否决,只是想补充一点,我很想问 stackoverflow 社区。抱歉,这不是一个适合在这里问的编程练习。添加了标签来为这个问题带来上下文。 )

【问题讨论】:

标签: java object garbage-collection jvm singleton


【解决方案1】:

我不知道会有什么好处。我想,它可能有助于解决某些性能调整和调试问题。

但是,除非对象被编码为记录自己的年龄,否则没有实际的方法可以做到这一点(在标准 Java 中)。这将需要大量的时间和空间成本。


经过一些小研究,发现 Garbage-Collector 需要知道对象的年龄。

实际上,分代GC只需要大概的年龄。它可以根据对象当前所在的位置来确定;即当前分配的“空间”。


对于Java语言和主流实现...

如果我们能够找到一个物体的年龄怎么办?

一般来说,我们不能。一般来说,这使得剩下的问题“没有实际意义”。

我们可以用它做什么?

没有意义。

会有帮助吗?

没有意义。

它会帮助我们分析我的程序运行时并用它做些什么吗?会是什么?

在某些情况下,可能是的。但是这个问题没有实际意义。

应用程序运行时/场景中可能/可能的部分可能受益于对象的计算年龄?

可能是性能调整。可能是调试。但是这个问题没有实际意义。

您是否在开发/调试/现场问题期间遇到过这样的情况,您希望如果它能够计算对象的年龄,它会受益?

可能。 (我已经编程了 40 多年,很难记住我在那段时间所做的一切。)但是我并没有为此感到压力。

另外,我从来没有考虑过(假设地)记录每个对象的生命周期的好处是值得付出代价的。

但是,如果您正在设计/实现一种新的实验性编程语言,请随意将其包含在功能列表中。如果它是一个有用的功能1,里面应该有一些研究论文。


1 - 并且(愤世嫉俗地)即使不是 :-)

【讨论】:

  • 谢谢。如果我偶然发现设计一种实验性语言,我会试试这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-26
  • 1970-01-01
  • 2020-12-28
  • 2016-03-20
  • 2011-04-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多