cstringC 语言字符串处理库
cstring 是一个简单的 string 库,它主要解决以下几个问题:
- 对于短字符串(小于32字节),进行string interning。这可以在文本处理时节省足够的内存。短字符串相当于symbol类型,对它做比较操作的代价可以减少到O(1)。
- 对于临时字符串,如果长度不大(小于128字节),应放在堆栈上,避免动态内存分配。
- 支持常量字符串,对于常量短字符串只做一次string interning操作。
- 使用引用计数管理相同的字符串,减少字符串的副本。
- 短字符串,常量字符串,以及引用次数非常多(大于64K次)的字符串可以不动态释放,简化生命期管理。
- 惰性计算,以及缓存字符串的hash值,以方便实现hashmap。
- 这个库是线程安全的。
评论