Expand description
§Memory Pooling Module
메모리 할당 오버헤드를 줄이기 위한 객체 풀링 시스템
§주요 기능
- Token Pool: Token 객체 재사용
- Node Pool: Lattice Node 재사용
- String Interning: 중복 문자열 제거
§설계 원칙
- Zero-Copy 우선: 가능한 한 복사를 피함
- Thread-Safe: 멀티스레드 환경 지원
- Memory Bounds: 메모리 사용량 제한
- 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§
- IdVec
Pool - ID 벡터 풀
- Node
VecPool - Node 벡터 풀
- Pool
Manager - 통합 메모리 풀 관리자
- Pool
Stats - 풀 통계 정보
- Shared
String Interner - 스레드 안전한 문자열 인터너
- Token
Pool - Token 객체 풀
Type Aliases§
- Symbol
- String interning을 위한 심볼 타입