Commit fc4bb14e authored by shrabbit's avatar shrabbit
Browse files

Add MemoryAdd playground and implement memory allocation logic

parent 63cfc720
Loading
Loading
Loading
Loading
+33 −7
Original line number Diff line number Diff line
@@ -4,16 +4,42 @@ namespace TestV.Playgrounds;

public class MemoryAdd : IPlayground, IPlaygroundKeepInstance
{
    public string LaunchCmd { get; } = "oom";
    public string? Name { get; } = "MemoryAdd";
    public string? Description { get; } = "内存溢出警告";
    public async Task Run(string[] args)
    {
        // if (args.Length < 1)
        // {
        //     AnsiConsole.MarkupLine("[red]请传递内存分配的大小[/]");
        // }
        
        var threads = int.Parse(args[0] ?? "1");

    public string LaunchCmd { get; }
    public string? Name { get; }
    public string? Description { get; }
    public async Task Run(string[] args)
        var tasks = new Task[threads];
        for (int i = 0; i < threads; i++)
        {
        if (args.Length < 1)
            tasks[i] = Haha();
        }
        
        await Task.WhenAll(tasks);
    }

    public async Task Haha()
    {
        await Task.Run(() =>
        {
            AnsiConsole.MarkupLine("[red]请传递内存分配的大小[/]");
            var i = 0L;
            var list = new List<byte>();

            while (true)
            {
                list.Add(0xff);
                i++;

                if (i % 0xffffff == 0)
                    AnsiConsole.WriteLine(i);
            }
        });
    }
}
 No newline at end of file
+1 −0
Original line number Diff line number Diff line
@@ -152,6 +152,7 @@ class Program
                .Add<View>()
                .Add<ImgAudio>()
                .Add<Combine>()
                .Add<MemoryAdd>()
                .Add<Exp1>();
            
            play.Startup(args);