Quellcode-Bibliothek MozjemallocInfo.cpp
Sprache: C
/* This Source Code Form is subject to the terms of the Mozilla Public *License,v.2.0.IfacopyoftheMPLwasnotdistributedwiththis
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include <stdio.h>
#include"mozmemory.h"
/* *Printtheconfiguredsizeclasseswhichwecanthenusetoupdate *documentation.
*/ int main() {
jemalloc_stats_t stats;
const size_t num_bins = jemalloc_stats_num_bins(); const size_t MAX_NUM_BINS = 100; if (num_bins > MAX_NUM_BINS) {
fprintf(stderr, "Exceeded maximum number of jemalloc stats bins"); return1;
}
jemalloc_bin_stats_t bin_stats[MAX_NUM_BINS] = {{0}};
jemalloc_stats(&stats, bin_stats);
printf("\n");
printf("Run layout for each bin size\n");
printf("----------------------------\n\n");
printf(" Size | Reg per run | Run size | Overhead | Theoretical best \n");
printf("------|-------------|----------|----------|------------------\n"); for (unsigned i = 0; i < num_bins; i++) { auto& bin = bin_stats[i]; if (bin.size) {
printf("%5zu | %11zu | %5zuKiB | %7.2f%% | %15.2f%%\n", bin.size,
bin.regions_per_run, bin.bytes_per_run / 1024, float(bin.bytes_per_run - (bin.regions_per_run * bin.size)) * 100.0f / float(bin.regions_per_run * bin.size), // Each byte of overhead provides metadata for 8 regions. 100.0f / (8.0f * float(bin.size)));
}
}
return EXIT_SUCCESS;
}
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.8Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.