2881099 / FreeRedis

🦄 FreeRedis is .NET40+ redis client. supports cluster, sentinel, master-slave, pub-sub, lua, pipeline, transaction, streams, client-side-caching, and pooling.
MIT License
905 stars 160 forks source link

[Requirements] A performance monitoring tool. #31

Open NMSAzulX opened 3 years ago

NMSAzulX commented 3 years ago

We need a performance monitoring tool to evaluate Client. It can specify the number of tests, it wraps a method and measures its execution time, GC information, memory growth size, CPU load, maximum transmit bytes size / second, maximum received bytes size / second, maximum number of sent packets / second, maximum number of received packets / second. It can generate visual elements such as charts and reports based on the results.

Expected API:

var monitor = new PerformanceCount();
monitor.Interval = 1;
monitor.OutFile = "result.md";
monitor.Method = ()=>{ };
monitor.Cycles = 6;
monitor.SetTarget(item=>item 
  .CpuCrest 
  .MemoryCrest 
  .TcpSendBtesCrest
  .TcpReceivePtsCrest
  .ExecuteTimeSeconde....);
monitor.Run();
NMSAzulX commented 3 years ago

https://devblogs.microsoft.com/dotnet/the-updated-getgcmemoryinfo-api-in-net-5-0-and-how-it-can-help-you/