@morojs/moro


@morojs/moro / ObjectPool

Class: ObjectPool<T>

Defined in: src/core/pooling/object-pool.ts:19

Generic object pool for reusable objects

Example

import { ObjectPool } from '@morojs/moro';

const pool = new ObjectPool(() => ({}), 100, obj => {
  for (const key in obj) delete obj[key];
});
const obj = pool.acquire();
// ... use obj ...
pool.release(obj);

Type Parameters

T

T

Constructors

Constructor

new ObjectPool<T>(factory, maxSize?, reset?): ObjectPool<T>

Defined in: src/core/pooling/object-pool.ts:28

Parameters

factory

() => T

maxSize?

number = 100

reset?

(obj) => void

Returns

ObjectPool<T>

Accessors

size

Get Signature

get size(): number

Defined in: src/core/pooling/object-pool.ts:72

Returns

number


stats

Get Signature

get stats(): object

Defined in: src/core/pooling/object-pool.ts:76

Returns

object

acquireCount

acquireCount: number

createCount

createCount: number

maxSize

maxSize: number

poolSize

poolSize: number

releaseCount

releaseCount: number

utilization

utilization: number

Methods

acquire()

acquire(): T

Defined in: src/core/pooling/object-pool.ts:34

Returns

T


clear()

clear(): void

Defined in: src/core/pooling/object-pool.ts:87

Returns

void


release()

release(obj): void

Defined in: src/core/pooling/object-pool.ts:46

Parameters

obj

T

Returns

void


setMaxSize()

setMaxSize(maxSize): void

Defined in: src/core/pooling/object-pool.ts:65

Adjust the pool's capacity. Shrinking drops surplus pooled objects immediately (they are left for garbage collection).

Parameters

maxSize

number

Returns

void