Заполнить оперативную память для отказа - C#
Формулировка задачи:
Пытаюсь заполнить оперативную память, чтобы посмотреть как себя поведет система))
написал вот такой код
но на 1500 с чем то вылезает исключение
OutOfMemoryException
как быть? почему мне нельзя использовать столько памяти сколько нужно?)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections; namespace ozuTest { class Program { static List<MyBuffer> buffer = new List<MyBuffer>(); static void Main(string[] args) { while (true) { MyBuffer buf = new MyBuffer(); buffer.Add(buf); Console.WriteLine("Мегабайт загружено в память : " + (buffer.Count)); } } } class MyBuffer { byte[] buf = new byte[1048576]; } }
Решение задачи: «Заполнить оперативную память для отказа»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Diagnostics; using System.Threading; namespace ozuTest { class Program { static List<MyBuffer> buffer = new List<MyBuffer>(); static int bufLast; static void Main(string[] args) { if (args.Length > 0) { bufLast = int.Parse(args[1]); } while (true) { MyBuffer buf = new MyBuffer(); buffer.Add(buf); Console.WriteLine("Мегабайт загружено в память : " + (int)((buffer.Count + bufLast) / 120.4)); if (buffer.Count / 120.4f > 1200) { Console.WriteLine("error"); ProcessNew(); Thread.Sleep(1000000000); } } } static void ProcessNew() { Process proc = new Process(); proc.StartInfo.FileName = "ozuTest.exe"; proc.StartInfo.Arguments = ("-a " + (buffer.Count + bufLast)); proc.Start(); } } class MyBuffer { byte[] buf = new byte[10240]; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д