Skip to content

Commit

Permalink
Refacto write_readme.js
Browse files Browse the repository at this point in the history
  • Loading branch information
Elanis committed Jun 2, 2024
1 parent 25ba0c7 commit 4e42288
Showing 1 changed file with 26 additions and 67 deletions.
93 changes: 26 additions & 67 deletions runner/write_readme.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ const data = JSON.parse(fs.readFileSync('benchmarks.json', 'utf8'));
/**
* Stats
*/
function getBuildSizeStats(app, architecture) {
function getStat(app, architecture, field, format=((x) => x)) {
if(!data[architecture]) {
return {};
}
Expand All @@ -17,37 +17,25 @@ function getBuildSizeStats(app, architecture) {
for(const libraryId in libraries) {
const benchmarkData = data[architecture].benchmarkData[`../benchmark/${app}/${libraryId}`];

if(!benchmarkData || !benchmarkData.buildSize) {
if(!benchmarkData || !benchmarkData[field]) {
continue;
}

stats[libraryId + '/Release'] = benchmarkData.buildSize;
stats[libraryId + '/Release'] = format(benchmarkData[field]);
}

return stats;
}

function getBuildTimeStats(app, architecture) {
if(!data[architecture]) {
return {};
}

const stats = {};

for(const libraryId in libraries) {
const benchmarkData = data[architecture].benchmarkData[`../benchmark/${app}/${libraryId}`];

if(!benchmarkData || !benchmarkData.buildTime) {
continue;
}

stats[libraryId + '/Release'] = Math.round(benchmarkData.buildTime);
}
function getBuildSizeStats(app, architecture) {
return getStat(app, architecture, 'buildSize');
}

return stats;
function getBuildTimeStats(app, architecture) {
return getStat(app, architecture, 'buildTime', (x) => Math.round(x));
}

function getMemoryStats(app, architecture) {
function getStatByTargets(app, architecture, formatFunction) {
if(!data[architecture]) {
return {};
}
Expand All @@ -62,63 +50,34 @@ function getMemoryStats(app, architecture) {
continue;
}

stats[libraryId + '/' + context] = Math.floor(
benchmarkData.benchmarks.map((elt) => elt.memoryUsage.med).reduce((a, b) => a + (b || 0), 0) / benchmarkData.benchmarks.length
);
stats[libraryId + '/' + context] = formatFunction(benchmarkData.benchmarks);
}
}

return stats;
}

function getSystemMemoryStats(app, architecture) {
if(!data[architecture]) {
return {};
}

const stats = {};

for(const libraryId in libraries) {
for(const context of ['Debug', 'Release']) {
const benchmarkData = data[architecture].benchmarkData[`../benchmark/${app}/${libraryId}/${context}`];

if(!benchmarkData || !benchmarkData.benchmarks) {
continue;
}

stats[libraryId + '/' + context] = Math.floor(
benchmarkData.benchmarks.map((elt) => elt.memoryUsage.sysMed).reduce((a, b) => a + (b || 0), 0) / benchmarkData.benchmarks.length
);
}
}
function getMemoryStats(app, architecture) {
return getStatByTargets(app, architecture, (benchmarks) => Math.floor(
benchmarks.map((elt) => elt.memoryUsage.med).reduce((a, b) => a + (b || 0), 0) / benchmarks.length
));
}

return stats;
function getSystemMemoryStats(app, architecture) {
return getStatByTargets(app, architecture, (benchmarks) => Math.floor(
benchmarks.map((elt) => elt.memoryUsage.sysMed).reduce((a, b) => a + (b || 0), 0) / benchmarks.length
));
}

function getStartTimeStats(app, architecture) {
if(!data[architecture]) {
return {};
}

const stats = {};

for(const libraryId in libraries) {
for(const context of ['Debug', 'Release']) {
const benchmarkData = data[architecture].benchmarkData[`../benchmark/${app}/${libraryId}/${context}`];

if(!benchmarkData || !benchmarkData.benchmarks) {
continue;
}

const startTimes = benchmarkData.benchmarks.map((elt) => elt.startTime).filter(x => typeof x === 'number').sort();
if(startTimes.length > 0) {
stats[libraryId + '/' + context] = Math.round(startTimes[Math.floor(startTimes.length / 2)]);
} else{
stats[libraryId + '/' + context] = 0;
}
return getStatByTargets(app, architecture, (benchmarks) => {
const startTimes = benchmarks.map((elt) => elt.startTime).filter(x => typeof x === 'number').sort();
if(startTimes.length > 0) {
return Math.round(startTimes[Math.floor(startTimes.length / 2)]);
}
}
return stats;

return 0;
});
}

/**
Expand Down

0 comments on commit 4e42288

Please sign in to comment.