Skip to content

@statesync/persistence


@statesync/persistence / benchmarkCompression

Function: benchmarkCompression() ​

ts
function benchmarkCompression(
   data, 
   adapter, 
   iterations): object;

Defined in: persistence/src/compression.ts:346

Benchmarks a compression adapter's performance by running multiple iterations.

Performs a warm-up pass before measuring, then runs iterations rounds each of compress and decompress to compute average timings.

Parameters ​

ParameterTypeDefault valueDescription
datastringundefinedThe input string to use for benchmarking.
adapterCompressionAdapterundefinedThe compression adapter to benchmark.
iterationsnumber100Number of iterations for each operation. Higher values produce more stable results but take longer.

Returns ​

object

An object containing:

  • ratio -- compressed size / original size (lower is better)
  • compressTimeMs -- average compress time per iteration in milliseconds
  • decompressTimeMs -- average decompress time per iteration in milliseconds
  • originalSize -- length of the input string in characters
  • compressedSize -- length of the compressed string in characters

compressedSize ​

ts
compressedSize: number;

compressTimeMs ​

ts
compressTimeMs: number;

decompressTimeMs ​

ts
decompressTimeMs: number;

originalSize ​

ts
originalSize: number;

ratio ​

ts
ratio: number;

Example ​

typescript
const result = benchmarkCompression(largeJson, createLZCompressionAdapter(), 200);
console.log(`Ratio: ${result.ratio}, Compress: ${result.compressTimeMs}ms`);

Released under the MIT License.