← 最新论文
💻 computer science

TRACE: Evaluating Execution Efficiency of LLM-Based Code Translation

本文提出了首个专门评估大语言模型代码翻译执行效率的基准 TRACE,通过 1000 个包含压力测试的任务发现,代码的正确性并不能保证高效性,且当前模型普遍存在可量化的效率退化模式,表明需要建立独立的效率评估维度。

原作者: Zhihao Gong, Zeyu Sun, Dong Huang, Qingyuan Liang, Jie M. Zhang, Dan Hao

发布于 2026-03-20
📖 1 分钟阅读☕ 轻松阅读

原作者: Zhihao Gong, Zeyu Sun, Dong Huang, Qingyuan Liang, Jie M. Zhang, Dan Hao

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

这篇论文讲述了一个关于**“大模型写代码”**的新发现。简单来说,它揭示了一个我们以前没太注意的“隐形陷阱”:大模型翻译出来的代码,虽然能跑通(功能正确),但可能跑得特别慢,或者特别费内存(效率低下)。

为了让你更容易理解,我们可以把这篇论文的研究比作**“给老房子换装修”**。

1. 核心问题:装修对了,但住得难受

想象一下,你有一栋老房子(旧代码,比如用 C++ 写的),你想把它重新装修成现代风格(新代码,比如用 Python 写)。

  • 以前的关注点(功能正确性): 装修师傅(大模型)把墙砌好了,门装上了,灯也亮了。你进去一看:“嗯,这房子能住,功能没问题!”大家就都满意了。
  • 这篇论文指出的问题(执行效率): 虽然房子能住,但装修师傅为了省事,把承重墙拆了(算法改错了),或者把水管接得弯弯曲曲(用了不合适的语言特性)。结果就是:虽然能住,但水压特别小(运行慢),或者夏天特别热(内存占用大)

TRACE 项目就是为了解决这个问题而诞生的。它是世界上第一个专门用来**“挑刺”**的测试工具,专门看大模型翻译的代码到底“跑得顺不顺”。

2. TRACE 是怎么工作的?( Stress Test = 压力测试)

以前的测试就像是在**“空荡荡的街道”**上开车,车速慢点也看不出来。
TRACE 的做法是:

  • 制造“早高峰”: 它不给大模型出简单的题目,而是专门生成**“压力测试”**(Stress Tests)。比如,让代码处理 100 万个数据,或者进行极其复杂的计算。
  • 看谁先“趴窝”: 在普通测试下,两个模型可能都跑完了,用时都是 0.02 秒。但在“早高峰”(压力测试)下,一个模型可能只要 0.02 秒,另一个模型却卡了 11 秒,甚至直接死机。
  • 比喻: 就像两个快递员,送一个小包裹(小数据)都很快。但让他们送 1000 个包裹(大数据)时,一个用了电动三轮车(高效算法),另一个却选择了一辆破自行车还走错了路(低效算法),结果慢了几百倍。

3. 他们发现了什么?(三大惊人真相)

真相一:长得“像”不代表“跑得快”

  • 发现: 很多我们认为很厉害的大模型(比如 Claude-4-think),虽然翻译出来的代码功能 100% 正确,但在速度上却表现平平,甚至不如一些 smaller(更小、更开源)的模型(如 Qwen2.5-Coder)。
  • 比喻: 就像考试,有些学生(大模型)虽然作文写对了(功能正确),但字迹潦草、逻辑混乱(效率低),导致阅卷老师(用户)读起来很费劲。而有些学生虽然名气不大,但字迹工整、逻辑清晰,读起来飞快。
  • 结论: 功能正确 \neq 效率高。 不能只看代码能不能跑,还得看它跑得快不快。

真相二:低效是有“套路”的

研究人员把那些“跑不动”的代码拿来分析,发现它们主要犯了三种错:

  1. 算法选错了(11.9%): 就像明明有高速公路,非要去走乡间小路。比如把“快速排序”写成了“冒泡排序”,数据一多就慢得离谱。
  2. 语言习惯没对上(66.4%): 这是最常见的。比如 C++ 里有个“快速查找”的工具(哈希表),翻译到 Java 时,模型却用了“慢速查找”的工具(普通树),导致速度变慢。
  3. 资源浪费(21.7%): 明明可以用一个小盒子装东西,非要造一个巨大的集装箱,还浪费了很多空间。比如用笨重的“大对象”去处理简单的数字,导致内存爆炸。

真相三:光靠“提示”没用

  • 发现: 研究人员尝试在提示词(Prompt)里告诉大模型:“嘿,请写得快一点!”或者给几个好例子。
  • 结果: 效果微乎其微。就像你给一个不懂开车的人看了一本《赛车指南》,他可能还是开不快。
  • 结论: 大模型目前天生缺乏“效率意识”。它们更擅长模仿“样子”,而不是理解“性能”。仅仅靠“教”是不够的,可能需要在训练阶段就注入效率的基因。

4. 为什么要关心这个?

  • 省钱: 代码跑得慢,服务器就要多跑时间,电费就贵。
  • 体验: 用户点一下按钮,如果代码效率低,可能要等半天,体验极差。
  • 未来: 随着软件越来越复杂,如果大模型生成的代码都是“看起来很美,用起来很卡”,那自动编程就失去了意义。

总结

这篇论文就像给大模型代码翻译领域装了一个**“测速仪”**。它告诉我们:

别只盯着代码“能不能用”,更要盯着它“好不好用”。
现在的 AI 虽然能写出“正确”的代码,但往往写不出“优雅、高效”的代码。TRACE 就是那个专门抓出这些“慢吞吞”代码的“考官”,帮助未来的 AI 进化成真正的“代码专家”,而不仅仅是“代码搬运工”。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →