Skip to content

Commit

Permalink
Refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
ehmicky committed Dec 5, 2021
1 parent cbece54 commit edc2429
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 13 deletions.
2 changes: 2 additions & 0 deletions src/run/sample/normalize.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import { sortFloats } from '../../stats/sort.js'
export const normalizeSampleMeasures = function (sampleMeasures, repeat) {
const sampleUnsortedMeasures = normalizeRepeat(sampleMeasures, repeat)
const sampleLoops = sampleUnsortedMeasures.length
const sampleTimes = sampleLoops * repeat

const sampleSortedMeasures = [...sampleUnsortedMeasures]
sortFloats(sampleSortedMeasures)
Expand All @@ -45,6 +46,7 @@ export const normalizeSampleMeasures = function (sampleMeasures, repeat) {
sampleUnsortedMeasures,
sampleMedian,
sampleLoops,
sampleTimes,
}
}

Expand Down
17 changes: 8 additions & 9 deletions src/run/sample/state.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ export const getSampleState = function (
sampleUnsortedMeasures,
sampleMedian,
sampleLoops,
sampleTimes,
} = normalizeSampleMeasures(sampleMeasures, repeat)
const { newRepeat, calibrated: calibratedA } = handleRepeat({
repeat,
Expand All @@ -44,10 +45,9 @@ export const getSampleState = function (
calibrated,
})
const maxLoops = getMaxLoops({
repeat: newRepeat,
repeatLast: repeat,
newRepeat,
measures: measuresA,
sampleLoops,
sampleTimes,
measureDuration,
targetSampleDuration,
})
Expand All @@ -56,8 +56,8 @@ export const getSampleState = function (
unsortedMeasures: unsortedMeasuresA,
allSamples: allSamples + 1,
sampleLoops,
sampleTimes,
repeat: newRepeat,
repeatLast: repeat,
maxLoops,
calibrated: calibratedA,
}
Expand Down Expand Up @@ -124,16 +124,15 @@ const addSampleMeasures = function ({
// target.
// The value does not impact `stats.mean` much though.
const getMaxLoops = function ({
repeat,
repeatLast,
newRepeat,
measures,
sampleLoops,
sampleTimes,
measureDuration,
targetSampleDuration,
}) {
const measureDurationPerTime = measureDuration / (sampleLoops * repeatLast)
const measureDurationPerTime = measureDuration / sampleTimes
return Math.min(
Math.ceil(targetSampleDuration / (measureDurationPerTime * repeat)),
Math.ceil(targetSampleDuration / (measureDurationPerTime * newRepeat)),
getMaxMeasuresLeft(measures),
)
}
8 changes: 4 additions & 4 deletions src/stats/add.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ export const getInitialStats = function () {
// - histogram[*].end: <=1
export const addStats = function (
stats,
{ measures, unsortedMeasures, sampleLoops, repeatLast },
{ measures, unsortedMeasures, sampleLoops, sampleTimes },
minLoopDuration,
) {
if (measures.length === 0) {
Expand All @@ -54,7 +54,7 @@ export const addStats = function (

const countStats = getCountStats(stats, {
sampleLoops,
repeatLast,
sampleTimes,
minLoopDuration,
})
const computedStats = computeStats(measures, unsortedMeasures)
Expand All @@ -67,11 +67,11 @@ export const addStats = function (
// `repeat` is the average number of iterations inside those repeat loops
const getCountStats = function (
{ samples, loops, times },
{ sampleLoops, repeatLast, minLoopDuration },
{ sampleLoops, sampleTimes, minLoopDuration },
) {
const samplesA = samples + 1
const loopsA = loops + sampleLoops
const timesA = times + sampleLoops * repeatLast
const timesA = times + sampleTimes
const meanRepeat = Math.round(timesA / loopsA)
return {
samples: samplesA,
Expand Down

0 comments on commit edc2429

Please sign in to comment.