用benchmark.net简单测试了一下
intperf 是你原版c#
CppintperfT 是原版C++,CppintperfT2是老鱼的自称优化了20%的版本
intperfUnsafe 是随手改了一个unsafe的c#
benchmark.net默认大概是6-10次warmup,然后12-15次测试取平均
测试结果见下表。考虑到运算次数,基本上可以认为无明显区别
| Method | Job | Runtime | Mean | Error | StdDev | Ratio |
|-------------- |--------- |--------- |--------:|---------:|---------:|------:|
| intperf | .NET 5.0 | .NET 5.0 | 3.492 s | 0.0007 s | 0.0006 s | 1.00 |
| intperf | .NET 6.0 | .NET 6.0 | 3.505 s | 0.0014 s | 0.0013 s | 1.00 |
| | | | | | | |
| intperfUnsafe | .NET 5.0 | .NET 5.0 | 3.474 s | 0.0007 s | 0.0006 s | 1.00 |
| intperfUnsafe | .NET 6.0 | .NET 6.0 | 3.478 s | 0.0003 s | 0.0002 s | 1.00 |
| | | | | | | |
| CppintperfT | .NET 5.0 | .NET 5.0 | 3.468 s | 0.0007 s | 0.0006 s | 1.00 |
| CppintperfT | .NET 6.0 | .NET 6.0 | 3.467 s | 0.0002 s | 0.0002 s | 1.00 |
| | | | | | | |
| CppintperfT2 | .NET 5.0 | .NET 5.0 | 3.467 s | 0.0006 s | 0.0005 s | 1.00 |
| CppintperfT2 | .NET 6.0 | .NET 6.0 | 3.466 s | 0.0006 s | 0.0005 s | 1.00 |
【 在 finlab 的大作中提到: 】
: 是的, 一般情况下, 这个范围的差异可以忽略。
: 这个测试比较单一。 不过可以推测,大家的浮点数运算也是接近的。
: 相同的运算基本生成相同的代码。
: ...................
--
FROM 123.116.198.*