【发布时间】:2017-05-28 15:22:24
【问题描述】:
来自Fastest way to generate a random boolean,CodesInChaos在评论中说:
MS 搞砸了
NextBytes的实现,所以速度出奇的慢。[...] 性能与为每个字节调用
Next一样糟糕,而不是利用所有 31 位。但由于System.Random几乎在每个级别都有糟糕的设计和实现,这是我较小的抱怨之一。
他为什么说微软几乎在每个层面都进行了设计和实现?
Random 类是如何错误实现的?
【问题讨论】:
-
标题中的问题由您自己的报价回答。你身体里的问题是一个单独的问题。
-
@hvd 看了.NET参考源后,不知道为什么他说慢:
for (int i=0; i<buffer.Length; i++) buffer[i]=(byte)(InternalSample()%(Byte.MaxValue+1)); }? -
算法不是微软设计的,他们是从 Donald Knuth 的 The Art of Programming 中得到的。程序员抱怨他们的随机数生成器就像农民抱怨天气一样。
标签: c# .net performance random