Improve pooling mechanism

This commit is contained in:
neuecc
2020-05-29 01:22:46 +09:00
parent 2290b14532
commit a8455af16d
7 changed files with 294 additions and 76 deletions

View File

@@ -198,12 +198,15 @@ namespace NetCoreSandbox
static async Task Main(string[] args)
{
#if !DEBUG
//await new AllocationCheck().ViaUniTaskVoid();
//Console.ReadLine();
BenchmarkDotNet.Running.BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);
//await new ComparisonBenchmarks().ViaUniTaskT();
return;
#endif
// await new AllocationCheck().ViaUniTaskVoid();
// AsyncTest().Forget();
@@ -212,24 +215,43 @@ namespace NetCoreSandbox
// AsyncTest().Forget();
ThreadPool.SetMinThreads(100, 100);
List<UniTask<int>> list = new List<UniTask<int>>();
for (int i = 0; i < 321; i++)
{
list.Add(AsyncTest());
}
//await UniTask.WhenAll(list);
Console.WriteLine("TOGO");
var a = await AsyncTest();
var b = AsyncTest();
var c = AsyncTest();
await b;
await c;
foreach (var item in Cysharp.Threading.Tasks.Internal.StackNodeMonitor.GetCacheSizeInfo())
{
Console.WriteLine(item);
}
await UniTask.Yield();
Console.ReadLine();
}
#pragma warning disable CS1998
static async UniTaskVoid AsyncTest()
static async UniTask<int> AsyncTest()
{
// empty
// empty
await new TestAwaiter(false, UniTaskStatus.Succeeded);
await new TestAwaiter(true, UniTaskStatus.Succeeded);
await new TestAwaiter(false, UniTaskStatus.Succeeded);
Console.WriteLine("foo");
//return 10;
return 10;
}