Skip to content

Instantly share code, notes, and snippets.

@amrkarthik
Last active May 23, 2020 12:15
Show Gist options
  • Save amrkarthik/f846ba7374e07accd0a5e67ee0d8706c to your computer and use it in GitHub Desktop.
Save amrkarthik/f846ba7374e07accd0a5e67ee0d8706c to your computer and use it in GitHub Desktop.
CPUCahceExperiment
using System;
using System.Linq;
using System.Text;
using System.Diagnostics;
public class Program
{
private static int loopCount = 5000;
private static void GetStringByCombinedExecution(StringBuilder myFirstStringBuilder,
StringBuilder mySecondStringBuilder,
string sampleString)
{
var timer = Stopwatch.StartNew();
for (int i = 0; i < loopCount; i++)
{
myFirstStringBuilder.Append(sampleString);
mySecondStringBuilder.Append(sampleString);
}
timer.Stop();
Console.WriteLine($"Execution in single loop: {timer.Elapsed.TotalMilliseconds}");
}
private static void GetStringBySeperateExecution(StringBuilder myFirstStringBuilder,
StringBuilder mySecondStringBuilder,
string sampleString)
{
var timer = Stopwatch.StartNew();
for (int i = 0; i < loopCount; i++)
{
myFirstStringBuilder.Append(sampleString);
}
for (int i = 0; i < loopCount; i++)
{
mySecondStringBuilder.Append(sampleString);
}
timer.Stop();
Console.WriteLine($"Execution in seperate loops: {timer.Elapsed.TotalMilliseconds}");
}
public static void Main()
{
StringBuilder myFirstStringBuilder = new StringBuilder();
StringBuilder mySecondStringBuilder = new StringBuilder();
string sampleString = string.Join(" ", Enumerable.Repeat("Hello World", 1000));
GetStringBySeperateExecution(myFirstStringBuilder, mySecondStringBuilder, sampleString);
GetStringByCombinedExecution(myFirstStringBuilder, mySecondStringBuilder, sampleString);
Console.ReadLine();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment