![]() |
1
6
给这个代码计时是不可能的。只有运行代码的发布版本,才能获得实际的计时结果。它还启动了JIT优化器。它很聪明地发现“pt”实际上并没有在任何地方使用, 它删除所有分配它的代码 要强制JIT优化器实际发出分配代码,您必须使用“pt”进行一些操作。比如:
[elided]部分是Console.WriteLine()调用。仔细查看机器代码说明: 这是完全相同的代码 JIT编译器就是这样。如果你要求它做同样的工作,它会生成同样的代码。通常的建议是为了清晰而不是效率而编码。虽然这样的说法不常被证实,但往往是准确的。 |
![]() |
2
1
我希望它们能给出相同的机器代码,假设
但是,IL中有一个区别,因为编译器没有内联构造函数。如您所料,第一段代码对构造函数进行1000次调用,而第二段代码进行1000对字段存储操作。
|
![]() |
John · 在哪里放置只用于单一目的的单一util方法?(Java) 7 年前 |
|
JenyaP · 为什么这个程序有效??返回局部结构变量 7 年前 |
![]() |
Joe · Python-更改JSON值和漂亮的打印 7 年前 |
![]() |
Lapo pfalcon · Java类和子类逻辑 7 年前 |
![]() |
Vasyl Hoshovsky · Java 9项目结构问题 7 年前 |