Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Main : BaseScript
- {
- private int sampleSize = 50;
- private int samplesA = 0;
- private int samplesB = 0;
- private Stack<DateTime> TimingsA = new Stack<DateTime>();
- private Stack<DateTime> TimingsB = new Stack<DateTime>();
- private bool didPrint = false;
- public Main()
- {
- Task.Run(async () =>
- {
- while (true)
- {
- if (samplesB < sampleSize)
- {
- TimingsB.Push(DateTime.UtcNow);
- samplesB++;
- }
- await Delay(100);
- }
- });
- }
- [Tick]
- private async Task TestA()
- {
- while (true)
- {
- if (samplesA < sampleSize)
- {
- TimingsA.Push(DateTime.UtcNow);
- samplesA++;
- }
- await Delay(100);
- }
- }
- [Tick]
- private async Task PrintResults()
- {
- Debug.WriteLine("Recording... " + samplesA.ToString() + " - " + samplesB.ToString() );
- if (!didPrint && samplesA >= sampleSize && samplesB >= sampleSize)
- {
- Stack<DateTime> TimingsACopy = new Stack<DateTime>(TimingsA.Reverse());
- Stack<DateTime> TimingsBCopy = new Stack<DateTime>(TimingsB.Reverse());
- StringBuilder output = new StringBuilder();
- output.AppendLine($"Samples A: {TimingsA.Count}, Samples B: {TimingsB.Count}");
- for (int i = 0; i < sampleSize; i++)
- {
- long a = new DateTimeOffset(TimingsA.Pop()).ToUnixTimeMilliseconds();
- long b = new DateTimeOffset(TimingsB.Pop()).ToUnixTimeMilliseconds();
- long ac = 0;
- long bc = 0;
- if (i != 0)
- {
- ac = new DateTimeOffset(TimingsACopy.Pop()).ToUnixTimeMilliseconds();
- bc = new DateTimeOffset(TimingsBCopy.Pop()).ToUnixTimeMilliseconds();
- }
- output.AppendLine($"A = {a}, AC = {ac}, A delta = {ac - a}, B = {b}, BC = {bc}, B delta = {bc - b}");
- }
- SaveResourceFile(GetCurrentResourceName(), "timings", output.ToString(), -1);
- didPrint = true;
- }
- await Delay(500);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement