Advertisement
Guest User

Untitled

a guest
Apr 8th, 2020
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.54 KB | None | 0 0
  1. public class Main : BaseScript
  2. {
  3.         private int sampleSize = 50;
  4.         private int samplesA = 0;
  5.         private int samplesB = 0;
  6.         private Stack<DateTime> TimingsA = new Stack<DateTime>();
  7.         private Stack<DateTime> TimingsB = new Stack<DateTime>();
  8.         private bool didPrint = false;
  9.  
  10.         public Main()
  11.         {
  12.             Task.Run(async () =>
  13.             {
  14.                 while (true)
  15.                 {
  16.                     if (samplesB < sampleSize)
  17.                     {
  18.                         TimingsB.Push(DateTime.UtcNow);
  19.                         samplesB++;
  20.                     }
  21.                     await Delay(100);
  22.                 }
  23.             });
  24.         }
  25.  
  26.         [Tick]
  27.         private async Task TestA()
  28.         {
  29.             while (true)
  30.             {
  31.                 if (samplesA < sampleSize)
  32.                 {
  33.                     TimingsA.Push(DateTime.UtcNow);
  34.                     samplesA++;
  35.                 }
  36.  
  37.                 await Delay(100);
  38.             }
  39.         }
  40.  
  41.         [Tick]
  42.         private async Task PrintResults()
  43.         {
  44.             Debug.WriteLine("Recording... " + samplesA.ToString() + " - " + samplesB.ToString() );
  45.             if (!didPrint && samplesA >= sampleSize && samplesB >= sampleSize)
  46.             {
  47.                 Stack<DateTime> TimingsACopy = new Stack<DateTime>(TimingsA.Reverse());
  48.                 Stack<DateTime> TimingsBCopy = new Stack<DateTime>(TimingsB.Reverse());
  49.  
  50.                 StringBuilder output = new StringBuilder();
  51.                 output.AppendLine($"Samples A: {TimingsA.Count}, Samples B: {TimingsB.Count}");
  52.  
  53.                 for (int i = 0; i < sampleSize; i++)
  54.                 {
  55.                     long a = new DateTimeOffset(TimingsA.Pop()).ToUnixTimeMilliseconds();
  56.                     long b = new DateTimeOffset(TimingsB.Pop()).ToUnixTimeMilliseconds();
  57.                     long ac = 0;
  58.                     long bc = 0;
  59.  
  60.                     if (i != 0)
  61.                     {
  62.                         ac = new DateTimeOffset(TimingsACopy.Pop()).ToUnixTimeMilliseconds();
  63.                         bc = new DateTimeOffset(TimingsBCopy.Pop()).ToUnixTimeMilliseconds();
  64.                     }
  65.  
  66.                     output.AppendLine($"A = {a}, AC = {ac}, A delta = {ac - a}, B = {b}, BC = {bc}, B delta = {bc - b}");
  67.                 }
  68.  
  69.                 SaveResourceFile(GetCurrentResourceName(), "timings", output.ToString(), -1);
  70.                 didPrint = true;
  71.             }
  72.  
  73.             await Delay(500);
  74.         }
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement