2009-11-11 2 views
1

Как я могу получить количество свободных байтов, доступных в памяти, в .NET?.NET: случайное число или количество свободных байтов в памяти?

Кроме того, вы можете думать о потенциально лучшем случайном числе рядом с new Random().Next(), DateTime.Now.Ticks или доступной системной памятью?

ответ

0

Что касается вашего вопроса относительно метрик памяти, посмотрите на использование счетчиков производительности.

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

Вы можете в конечном итоге нужно использовать другой счетчик, например, как «Память \ Free & Нулевые Page Список Bytes», чтобы получить то, что вы хотите. Я рекомендую экспериментировать с счетчиками производительности в perfmon.

2

Это может работать лучше, как 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); 

Обратите внимание, что это делает тестирование сложнее, так как она не может быть посеяны и т.д ...

1

Зачем изобретать колесо, когда есть очень хороший, доступный здесь: Random.org?

RANDOM.ORG предлагает истинные случайные числа всем, кто находится в Интернете. Случайность исходит из атмосферного шума , который для многих целей лучше, чем псевдослучайное число алгоритмы, обычно используемые в компьютере программ. Люди используют RANDOM.ORG для , занимающихся рисунками, лотереями и лотереями, чтобы вести игры и азартные игры, для научных приложений и для искусства и музыки.

Отказ от ответственности: Я не связан каким-либо образом с этим сайтом, и я не могу ручаться за качество того, что они предлагают. Я лично считаю, что это довольно крутая идея.

Смежные вопросы