.NET:内存中的随机数或空闲字节数?

时间:2009-11-11 04:56:44

标签: c# .net memory random

如何在.NET中获取内存中可用的空闲字节数?

另外,您能想到new Random().Next()DateTime.Now.Ticks或可用系统内存旁边可能更好的随机数吗?

3 个答案:

答案 0 :(得分:2)

这可能会更好地解决2个问题......

重新new Random().Next() - 这显然会在紧密的循环中死亡,因此现有的 random.Next()会更随机;-p但你也许想要加密随机 - 如:

    var random = new RNGCryptoServiceProvider();
    byte[] bytes = new byte[4];
    random.GetBytes(bytes);
    int i = BitConverter.ToInt32(bytes, 0);

请注意,这会使测试变得更难,因为它不能播种等......

答案 1 :(得分:1)

为什么在这里有一个非常好的轮子时重新发明轮子:Random.org

  

RANDOM.ORG提供真正的随机数   互联网上的任何人。该   随机性来自大气   噪音,用于许多目的   优于伪随机数   通常用于计算机的算法   程式。人们使用RANDOM.ORG   拿着图纸,彩票和   抽奖,驾驶游戏和   赌博场所,用于科学研究   应用程序以及艺术和音乐。

免责声明:我不以任何方式加入本网站,也不保证他们提供的产品质量。我个人认为这是一个非常酷的主意。

答案 2 :(得分:0)

关于内存指标的问题,请查看使用性能计数器。

using System.Diagnostics;
...
PerformanceCounter counter = new PerformanceCounter("Memory", "Available Bytes");
long freeBytes = counter.RawValue;

您可能最终需要使用其他计数器,例如“Memory \ Free& Zero Page List Bytes”,以获得您想要的效果。我建议在perfmon中尝试性能计数器。