You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Rust中使用局部结构体是否存在性能负面影响?

在Rust中使用局部结构体是否存在性能损耗?

这个问题对应Stack Overflow上《Is there any negative performance implication to using local functions in Rust?》的同类疑问,但针对局部结构体场景。示例代码如下(注:原示例遗漏struct关键字,已修正以保证可编译):

fn bla() -> PublicStruct {
   struct MyHiddenStruct { bla: String };
   let m = MyHiddenStruct{bla: "aa".to_string()};
   // 一些处理逻辑...
   m.into()
}

补充说明:已通过criterion完成简单基准测试,结果如下:

innerouterstruct/outer struct
                        time:   [901.16 ps 905.16 ps 910.44 ps]
                        
innerouterstruct/inner struct
                        time:   [901.10 ps 903.89 ps 907.31 ps]

从测试结果可以看到,使用局部结构体(inner struct)和外部结构体(outer struct)的执行耗时几乎完全一致,不存在可观测的性能差异。

Rust编译器会对局部结构体做充分优化:这类结构体仅在定义它的函数内部可见,编译器可以直接将其内存布局、操作逻辑内联到函数中,不会产生额外的运行时开销。使用局部结构体的核心优势在于代码封装——能把内部实现细节(比如MyHiddenStruct)隐藏在函数内部,仅对外暴露PublicStruct,让代码结构更清晰,同时完全不会影响性能。

内容的提问来源于stack exchange,提问作者jgirardet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 14:30:53