Files
suaveplan/packages/media/audio/audio-sprite-player/bench/sequence.bench.ts
2026-05-27 23:47:53 +01:00

45 lines
1.1 KiB
TypeScript

import { bench, run } from "mitata";
import {
createNullSpritePlaybackAdapter,
createSpritePlayer,
} from "../src/index.js";
function makeSprite(n: number) {
const entries = Array.from({ length: n }, (_, i) => ({
name: `clip-${i}`,
offset: i * 100,
byteLength: 100,
durationSeconds: 0.05,
sampleRate: 48000,
channels: 2,
format: "ogg" as const,
}));
return {
data: new Uint8Array(n * 100),
manifest: {
version: 1 as const,
format: "ogg" as const,
sampleRate: 48000,
channels: 2,
totalDurationSeconds: n * 0.05,
entries,
contentHash: "0".repeat(64),
},
};
}
for (const n of [1, 10, 100]) {
const sprite = makeSprite(n);
const player = createSpritePlayer({
adapter: createNullSpritePlaybackAdapter(),
maxConcurrentVoices: 256,
});
await player.load(sprite);
const names = sprite.manifest.entries.map((e) => e.name);
bench(`playSequence n=${n}`, async () => {
await player.playSequence(names);
});
}
await run();