1
5
这并不是一个“足够聪明”的例子——编译器会按照命令做;你告诉它创建多个列表:它会创建多个列表。 应该 收集得相当干净,希望是0代。所以除非你是在一个紧密的循环中做这件事,否则我不会太兴奋。
如果你想避开名单,你
考虑LINQ
|
2
2
如果告诉它创建一个新对象,它将创建一个新对象。我不认为有一个优化可以用一个强制类型转换和一个assignment替换构造函数调用——编译器必须非常了解构造函数的功能,这样才能优化它。
严格来说,你可以自己做-
到目前为止,它还带有过早优化的味道。您的代码看起来很好,在看到实际的性能问题之前,我不会更改任何内容。 |
3
2
不,编译器不能这样做优化。 由于构造函数采用IEnumerable,因此可以创建表达式而不是列表:
|
4
1
|
George S. · 是否存在基于元组的控制流语句内部表示? 6 年前 |
FlatAssembler · 在x86程序集中计算exp(x) 6 年前 |
cib · 即时编译和动态编译有什么区别? 6 年前 |
Artemis · 寄存器与指令之间的差异 7 年前 |
Sam · 了解go工具编译和链接命令 7 年前 |