Skip to main content

Module pool

Module pool 

Source
Expand description

§Memory Pooling Module

메모리 할당 오버헤드를 줄이기 위한 객체 풀링 시스템

§주요 기능

  • Token Pool: Token 객체 재사용
  • Node Pool: Lattice Node 재사용
  • String Interning: 중복 문자열 제거

§설계 원칙

  1. Zero-Copy 우선: 가능한 한 복사를 피함
  2. Thread-Safe: 멀티스레드 환경 지원
  3. Memory Bounds: 메모리 사용량 제한
  4. Fast Path: 일반적인 경우 최소 오버헤드

§Example

use mecab_ko_core::pool::{TokenPool, SharedStringInterner};

let pool = TokenPool::new();
let interner = SharedStringInterner::new();

// Symbol intern
let sym = interner.intern("안녕");
assert_eq!(interner.resolve(sym).as_deref(), Some("안녕"));

// Token 획득
let mut token = pool.acquire();
token.surface = "안녕".to_string();
token.pos = "NNG".to_string();

// 사용 후 반환
pool.release(token);

// 재사용
let token2 = pool.acquire();
assert_eq!(token2.surface, ""); // 초기화됨

Structs§

IdVecPool
ID 벡터 풀
NodeVecPool
Node 벡터 풀
PoolManager
통합 메모리 풀 관리자
PoolStats
풀 통계 정보
SharedStringInterner
스레드 안전한 문자열 인터너
TokenPool
Token 객체 풀

Type Aliases§

Symbol
String interning을 위한 심볼 타입