用户函数约 250~300 个后编译链接永久挂起(三版本复现)
【TBQuant 1.4.5.x 链接器缺陷反馈】用户函数约 250~300 个后编译链接永久挂起(三版本复现)一、现象编译任意用户自定义函数(即使源码零语法错误),底部状态栏持续显示"本地库正在链接函数库",几分钟至几十分钟无结果,不产出策略 DLL。日志 TBCore.log 停留在"正在进行链接"后无任何编译器输出;进程 CPU 利用率约 7%(60 秒仅 +4.3 秒),无编译器子进程,心跳线程正常——链接线程单线程空等。二、三版本复现(2026-10-24 实测,独立安装环境)- 1.4.5.3 安装版:待链接 obj 447 个(230.5MB,平均 527KB)→ 链接挂起(19 分钟无产物)- 1.4.5.2 绿色版:待链接 obj 512 个(258.3MB,平均 517KB)→ 链接挂起(CPU 7% 空转)- 1.4.5.0 绿色版:待链接 obj 506 个(255.1MB,平均 516KB)→ 链接挂起(12 分钟无产物)- 空用户目录从零逐个编译正常;逐个新增函数到约 200~300 个后开始卡死——数量阈值机制。三、obj 结构分析(单 obj 实测 241,653 字节)- 符号表 41.2KB(17%):COFF 风格,2288 个符号槽- 字符串表 143.7KB(59%):符号名(MSVC 长修饰名)- 段数据+重定位 42.6KB(18%)- 头部+段表 14.2KB(6%)- .debug$S 调试段仅 0.15KB(0.1%)→ obj 大头是符号表+字符串表(合计 76%),由编译器生成,与 debug/Release 开关无关,TBQuant 也无关闭用户函数调试信息的配置项。四、已排除因素(均有实测依据)1. 函数间死循环引用:依赖图(Func_Relation 673 条边,Tarjan SCC)+ 源码调用图双路径均 0 环、0 自递归。2. 函数库膨胀:UserFunction.lib 改名后重新编译仍卡;空库新建函数到阈值同样卡。3. 杀毒软件:360 彻底卸载(7 处目录+进程+服务+驱动+启动项+计划任务全查无残留);Windows Defender 时间线/机制不符。5. 内存不足:16GB 内存编译时空闲 7.8GB,进程约 800MB。6. 版本降级:1.4.5.2 / 1.4.5.0 全新安装同规模数据同样复现——非 1.4.5.3 独有回归。五、结论与诉求TBQuant 1.4.5.x 链接器在待链接用户函数 obj 数量达到阈值后永久挂起(约 114 万符号槽,疑似符号合并算法瓶颈)。【修复验证(决定性):实测将函数库从 447 个函数减至 340 个后,链接恢复正常、编译任意函数即时完成——确认与函数数量强相关,阈值约在 340~447 之间。】请官方:1. 优化链接器符号合并算法,提高 obj 数量/总大小处理上限;2. 提供用户函数"增量链接"或"无调试符号"编译选项;3. 提供临时兜底(如函数库 obj 数量上限配置或分批链接)。环境:Windows 10 x64,TBQuant 1.4.5.3(2026-08-24 安装),用户函数库 516 个 / 待链接 obj 447 个。问题始于 2026-09-20(函数数量跨过阈值)。以上文件内容经过clause code本地详细分析写出来,请官方技术有空解决下