< prev index next >

src/share/vm/utilities/numberSeq.cpp

Print this page
rev 10576 : [backport] Trace and report total allocation latency and sizes

*** 357,373 **** --- 357,376 ---- BinaryMagnitudeSeq::BinaryMagnitudeSeq() { _mags = NEW_C_HEAP_ARRAY(jlong, BitsPerJavaLong, mtInternal); for (int c = 0; c < BitsPerJavaLong; c++) { _mags[c] = 0; } + _sum = 0; } BinaryMagnitudeSeq::~BinaryMagnitudeSeq() { FREE_C_HEAP_ARRAY(size_t, _mags, mtInternal); } void BinaryMagnitudeSeq::add(size_t val) { + Atomic::add(val, &_sum); + int mag = log2_intptr(val) + 1; // Defensively saturate for product bits: if (mag < 0) { assert (false, err_msg("bucket index (%d) underflow for value (" SIZE_FORMAT ")", mag, val));
*** 396,405 **** --- 399,412 ---- r += _mags[c]; } return r; } + size_t BinaryMagnitudeSeq::sum() const { + return _sum; + } + int BinaryMagnitudeSeq::min_level() const { for (int c = 0; c < BitsPerJavaLong; c++) { if (_mags[c] != 0) { return c; }
< prev index next >