void print()

in src/mem/allocstats.h [323:417]


    void print(std::ostream& o, uint64_t dumpid = 0, uint64_t allocatorid = 0)
    {
      UNUSED(o, dumpid, allocatorid);

      CSVStream csv(&o);

      if (dumpid == 0)
      {
        // Output headers for initial dump
        // Keep in sync with data dump
        csv << "GlobalStats"
            << "DumpID"
            << "AllocatorID"
            << "Remote freed"
            << "Remote posted"
            << "Remote received"
            << "Superslab pop"
            << "Superslab push"
            << "Superslab fresh"
            << "Segments" << csv.endl;

        csv << "BucketedStats"
            << "DumpID"
            << "AllocatorID"
            << "Size group"
            << "Size"
            << "Current count"
            << "Max count"
            << "Total Allocs"
            << "Current Slab bytes"
            << "Max Slab bytes"
            << "Total slab allocs"
            << "Average Slab Usage"
            << "Average wasted space" << csv.endl;

        csv << "LargeBucketedStats"
            << "DumpID"
            << "AllocatorID"
            << "Size group"
            << "Size"
            << "Push count"
            << "Pop count" << csv.endl;

        csv << "AllocSizes"
            << "DumpID"
            << "AllocatorID"
            << "ClassID"
            << "Low size"
            << "High size"
            << "Count" << csv.endl;
      }

      for (smallsizeclass_t i = 0; i < N; i++)
      {
        if (sizeclass[i].count.is_unused())
          continue;

        sizeclass[i].addToRunningAverage();

        csv << "BucketedStats" << dumpid << allocatorid << i
            << sizeclass_to_size(i);

        sizeclass[i].print(csv, sizeclass_to_size(i));
      }

      // for (uint8_t i = 0; i < LARGE_N; i++)
      // {
      //   if ((large_push_count[i] == 0) && (large_pop_count[i] == 0))
      //     continue;

      //   csv << "LargeBucketedStats" << dumpid << allocatorid << (i + N)
      //       << large_sizeclass_to_size(i) << large_push_count[i]
      //       << large_pop_count[i] << csv.endl;
      // }

      size_t low = 0;
      size_t high = 0;

      for (size_t i = 0; i < TOTAL_BUCKETS; i++)
      {
        low = high + 1;
        high = bits::from_exp_mant<BUCKETS_BITS>(i);

        if (bucketed_requests[i] == 0)
          continue;

        csv << "AllocSizes" << dumpid << allocatorid << i << low << high
            << bucketed_requests[i] << csv.endl;
      }

      csv << "GlobalStats" << dumpid << allocatorid << remote_freed
          << remote_posted << remote_received << superslab_pop_count
          << superslab_push_count << superslab_fresh_count << segment_count
          << csv.endl;
    }