reuse memory pool to reduce GC