【发布时间】:2023-04-03 05:32:01
【问题描述】:
如何在 .NET 中获取内存中可用的空闲字节数?
另外,除了new Random().Next()、DateTime.Now.Ticks 或可用系统内存之外,您还能想出一个更好的随机数吗?
【问题讨论】:
如何在 .NET 中获取内存中可用的空闲字节数?
另外,除了new Random().Next()、DateTime.Now.Ticks 或可用系统内存之外,您还能想出一个更好的随机数吗?
【问题讨论】:
这可能更适合作为 2 个问题...
Re new Random().Next() - 这显然会死在一个紧密的循环中,所以 现有的 random.Next() 会更加随机;-p 但是你也许想要一个密码随机 - 类似:
var random = new RNGCryptoServiceProvider();
byte[] bytes = new byte[4];
random.GetBytes(bytes);
int i = BitConverter.ToInt32(bytes, 0);
请注意,这会使测试变得更加困难,因为它不能被播种等等......
【讨论】:
当这里有一个非常好的轮子时,为什么要重新发明轮子:Random.org?
RANDOM.ORG 提供真正的随机数 给互联网上的任何人。这 随机性来自大气 噪音,这对于许多目的是 优于伪随机数 计算机中常用的算法 程式。人们使用 RANDOM.ORG 拿着图纸、彩票和 抽奖,推动游戏和 赌博网站,用于科学 应用程序以及艺术和音乐。
免责声明:我与本网站没有任何关联,也不能保证他们提供的内容的质量。我个人认为这是一个很酷的想法。
【讨论】:
关于内存指标的问题,请考虑使用性能计数器。
using System.Diagnostics;
...
PerformanceCounter counter = new PerformanceCounter("Memory", "Available Bytes");
long freeBytes = counter.RawValue;
您最终可能需要使用不同的计数器,例如“Memory\Free & Zero Page List Bytes”来获得您想要的。我建议在 perfmon 中试验性能计数器。
【讨论】: