Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ObjectPool<T>

对象池

description

避免频繁gc

example
//初始化池子
let pool = new ObjectPool({
    create: () => new Float32Array(4),
    reInit: (item: Float32Array) => {
        for (let i = 0; i < item.length; i++) {
            item[i] = 0;
        }
    }
});

//创建
let ins = pool.create();

//回收
pool.recycle(ins);

//清空池子
pool.clear();

Type parameters

  • T

Hierarchy

  • ObjectPool

Index

Constructors

Properties

Accessors

Methods

Constructors

constructor

  • new ObjectPool(options: { create: () => T; initSize?: number; reInit: (obj: T) => void }): ObjectPool
  • Parameters

    • options: { create: () => T; initSize?: number; reInit: (obj: T) => void }
      • create: () => T
          • (): T
          • Returns T

      • Optional initSize?: number
      • reInit: (obj: T) => void
          • (obj: T): void
          • Parameters

            • obj: T

            Returns void

    Returns ObjectPool

Properties

Private _create

_create: () => T

Type declaration

    • (): T
    • Returns T

Private _pool

_pool: T[] = []

Private _reInit

_reInit: (obj: T) => void

Type declaration

    • (obj: T): void
    • Parameters

      • obj: T

      Returns void

Accessors

size

  • get size(): number

Methods

clear

  • clear(): void

instantiate

  • instantiate(): T

recycle

  • recycle(obj: T): void

Generated using TypeDoc