我正在尝试将向量中的每个项目插入到地图中。for-loop使用 a或 via 迭代器,哪一个是首选且更快for_each?
for循环
for api_config in apis {
insert(api_config);
}
Run Code Online (Sandbox Code Playgroud)
for_each
apis.into_iter().for_each(|api_config| insert(api_config));
Run Code Online (Sandbox Code Playgroud)
小智 5
官方文档指出 for 和 for_each 具有相同的运行时性能:
\n\n\n“闭包和迭代器的实现不会影响运行时性能。这是 Rust\xe2\x80\x99 努力提供零成本抽象目标的一部分。”
\n
〜https://doc.rust-lang.org/book/ch13-04-performance.html
\n如果您不确定两种不同实现中哪一个更快(无论是否涉及 for 循环),您始终可以自己测量。执行此操作时,请确保使用大数组(大小可能 >100k),以便您的测量更加准确。
\nuse std::time::{Instant};\nuse std::thread;\nuse std::time::Duration;\n\nfn my_fun() {\n // Put your code here\n}\n\nfn main() {\n let current = Instant::now();\n \n my_fun();\n \n let duration = current.elapsed();\n \n println!("Time elapsed in MyFun() is: {:?}", duration);\n}\nRun Code Online (Sandbox Code Playgroud)\n使用您的实现运行该程序。
\n| 归档时间: |
|
| 查看次数: |
1679 次 |
| 最近记录: |