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.