字符串对象有三种编码方式
第一种编码方式int
第二种编码方式raw
第三种编码方式embstr
如果字符串对象保存的是一个字符串值,并且这个字符串值的长度小于等于39个字节,那么字符串对象将使用embstr编码的方式来保存这个值。
使用embstr编码的字符串对象来保存短字符串值有以下好处:
- embstr编码将创建字符串对象所需的内存分配次数从raw编码的二次降低为一次。
- 释放embstr编码的字符串对象只需要调用一次内存释放函数,而释放raw编码的字符串对象需要调用二次内存释放函数。
embstr能够更好的利用缓存带来的优势。
另外embstr编码的字符串对象没有对应的修改程序,所以任何embstr编码的字符串对象只要修改,就会自动转换编码为raw的。