d大开关中插件减慢编译速度

原文
可惜,因为该bug需要在大的开关中插件,不能分享小示例代码.
可在此处找到可触发该问题示例:这里
编译时间主要由lexString.dlexHtmlEntitymixin决定.
使用该函数,编译jsonlexer,在系统上花费了45秒.
如果没有它,则只需要0.3s.
似乎有些非线性,因为类似的开关插件在其他地方也有,但在lexHtmlEntity中的switch肯定是最大的.

首先,你在一个函数中混合了35000行的switch语句.后端需要几秒钟生成代码,当函数有很多域时,会有二次减速.
还使用了

format!"case '%s':"

与简单连接串相比,在CTFE中执行该操作相当复杂.
但目前,最耗时的是在开关下实例化了singleEntity!"",2000次.在模板中,你索引了带2000个项的关联数组字面的'HtmlEntities'枚举.这似乎占用了90%的编译时间.
编译器应在重用关联数组字面方面更聪明一点.

posted @   zjh6  阅读(8)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示