AST设计
-
自研规则引擎的 AST 节点怎么设计,才能不卡在扩展和性能的十字路口?
线上跑过一次促销规则,表达式树里有三百多个 AND/OR 节点,几十个自定义函数调用。解释执行,单次评估耗时 12ms。规则一热,CPU 直接打满。换一套字节码方案后,降到 0.4ms。但团队花了三周才把 AST 转成可执行的指令序列...
线上跑过一次促销规则,表达式树里有三百多个 AND/OR 节点,几十个自定义函数调用。解释执行,单次评估耗时 12ms。规则一热,CPU 直接打满。换一套字节码方案后,降到 0.4ms。但团队花了三周才把 AST 转成可执行的指令序列...