.NET中生成伪随机值的性能

时间:2018-09-12 16:07:32

标签: c# .net random .net-4.7.2

为什么

var random = new Random();
random.Next(0 /* or any other positive value */, int.MaxValue);

大约是:的1.5倍:

random.Next(-1, int.MaxValue);

.NET Framework(4.7.2)如何实现此功能?他们不应该具有相同的性能吗?

(通过循环生成10M值来衡量性能)

编辑:-1和int.MaxValue之间的范围是否可能太大,因此必须在内部生成两个值?因为我看不到在-1和int.MaxValue-1之间生成的行为

1 个答案:

答案 0 :(得分:0)

查阅maccettura推荐的源代码后,如果范围为>Int32.MaxValue,则使用性能较低的变体。