Open lailongwei opened 2 weeks ago
LLBC_Event的event key当前统一成了LLBC_Variant来索引,这将产生较大的开销:
LLBC_Event
event key
LLBC_Variant
LLBC_Variant(stack)
new LLBC_String
string
str
LLBC_Variant(heap)
大部分项目实际使用中,都是以string、number作为key,故对LLBC_Event的event key进行优化:只支持LLBC_CString、integer、LLBC_IsTemplSpec(std::string)三种event key,第三种是保底的支持,为确保业务在极端情况下真用了std::string来作key也可正常使用
number
LLBC_CString
integer
LLBC_IsTemplSpec(std::string)
std::string
优化原因:
LLBC_Event
的event key
当前统一成了LLBC_Variant
来索引,这将产生较大的开销:LLBC_Variant(stack)
,并在内部new LLBC_String
string
copy到LLBC_Variant
内部的str
中LLBC_Variant(heap)
,并在内部new LLBC_String
LLBC_Variant
参数中的string
copy到内部LLBC_Variant
的临时对象创建及copy的开销大部分项目实际使用中,都是以
string
、number
作为key,故对LLBC_Event
的event key
进行优化:只支持LLBC_CString
、integer
、LLBC_IsTemplSpec(std::string)
三种event key
,第三种是保底的支持,为确保业务在极端情况下真用了std::string
来作key也可正常使用