Java hdr直方图足迹如何保持恒定
我无法理解以下基本概念: HDR直方图在空间和时间上都保持固定成本。直方图的内存占用是恒定的,记录数据值或迭代数据值时不涉及分配操作。内存占用是固定的,与记录的数据值样本数无关,并且仅取决于所选的动态范围和精度Java hdr直方图足迹如何保持恒定,java,monitoring,hdr,Java,Monitoring,Hdr,我无法理解以下基本概念: HDR直方图在空间和时间上都保持固定成本。直方图的内存占用是恒定的,记录数据值或迭代数据值时不涉及分配操作。内存占用是固定的,与记录的数据值样本数无关,并且仅取决于所选的动态范围和精度 这怎么可能?或者,这仅仅意味着它使用反应式队列,不会在堆中创建对象的新实例,同时追加队列并增加总体RAM消耗?内存占用是固定的,记录期间没有分配,这仅仅意味着所有必要的分配都发生在对象实例化时 假设HDR直方图用于跟踪10000个值,则在构造函数中将创建所有10000个计数器 如果查看,
这怎么可能?或者,这仅仅意味着它使用反应式队列,不会在堆中创建对象的新实例,同时追加队列并增加总体RAM消耗?内存占用是固定的,记录期间没有分配,这仅仅意味着所有必要的分配都发生在对象实例化时 假设HDR直方图用于跟踪10000个值,则在构造函数中将创建所有10000个计数器
如果查看,计数器是在构造函数中创建的
long
值数组。谢谢,@diginoise。那么,是关于启动成本吗?我想知道为什么那一页没有提到它。也许这10000个值是以某种方式延迟创建的?它们不是延迟创建的-这些值存储在构造函数中创建的基元long
s数组中。备份直方图的整个数据结构就是这个数组,创建这个数组并不耗费时间。它将占用N*(长8字节)+对象头
对不起,我没有仔细检查源代码。谢谢