Skip to content

Instantly share code, notes, and snippets.

@mikeobrien
Created May 11, 2012 22:44
Show Gist options
  • Save mikeobrien/2662898 to your computer and use it in GitHub Desktop.
Save mikeobrien/2662898 to your computer and use it in GitHub Desktop.
using System;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using NUnit.Framework;
namespace StringReplace
{
public static class Program
{
public static void Main()
{
var replacements = new string[] {
"yada1~}", "yada2", "yada3", "yada4", "yada5",
"yada6~}", "yada7", "yada8", "yada9", "yada10"};
var timer = new Stopwatch();
timer.Start();
for (var i = 0; i < 10000; i++)
{
var newMessage = Message;
replacements.ToList().ForEach(x => newMessage = newMessage.Replace(x, DateTime.Now.Ticks.ToString()));
}
timer.Stop();
Console.WriteLine(timer.ElapsedMilliseconds);
timer.Restart();
for (var i = 0; i < 10000; i++)
{
var newMessage = new StringBuilder(Message);
replacements.ToList().ForEach(x => newMessage = newMessage.Replace(x, DateTime.Now.Ticks.ToString()));
}
timer.Stop();
Console.WriteLine(timer.ElapsedMilliseconds);
timer.Restart();
for (var i = 0; i < 10000; i++)
{
var newMessage = Message;
replacements.ToList().ForEach(x => newMessage = Regex.Replace(newMessage, x, DateTime.Now.Ticks.ToString()));
}
timer.Stop();
Console.WriteLine(timer.ElapsedMilliseconds);
var regexes = replacements.Select(x => new Regex(x, RegexOptions.Compiled)).ToList();
timer.Restart();
for (var i = 0; i < 10000; i++)
{
var newMessage = Message;
regexes.ToList().ForEach(x => newMessage = x.Replace(newMessage, DateTime.Now.Ticks.ToString()));
}
timer.Stop();
Console.WriteLine(timer.ElapsedMilliseconds);
Console.ReadKey();
}
private static string Message = @"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin euismod tincidunt nisi,
vitae tempus turpis auctor ac. Praesent adipiscing ultricies puruyada5s, vitae aliquet lacus vulputate quis. Morbi volutpat velit
sodales felis coyada1nsequat at cursus liyada9bero pharetra. Pellentesque habitant morbi tristique syada6enectus et netus et malesuada fames
ac turpiyada5s egestas. Sed tristique tempus nullyada10a ac faciyada8lisis. Ut quis scelerisque lacus. Suspendisse pulvinar sem id dolor
laoreet aliquet. Integer scelerisque mi vel orci tristique id gravida nunc sempyada3er. Nam sit amet tortor massyada10a, ac molestie
libero. Mayada4ecenas hendrerit justo at diamyada7 imperdiet in placerat diam tempor. Duis pulvinar, quam syada9it amet eleifend scelerisque,
felis risus rhoncus lacus, ac ornare libero ligula quis ligula. Donec bibendum commodo blandit. yada2Nulla a urna non lorem molestie mattis.
Mauris fringilla ante quis massa pellentesque at egestas leo suscipit. Nullam aliquam iaculis ligula, at elemenyada10tum magna tincidunt
vitae. Pellentesqueyada6 eget nisl yada3augue. Donec sagittis enim vitae lectus convallis et faucibus diam iaculis. Nunc in ante nisl. In hac
habitasse platea dictumst. Nullam purus leyada4o, tincidyada9unt idyada8 rhyada5oncus at, grayada2vida eu arcu. Mauris facilisis porta leo, nec viverra odio
interdum et. Fyada8usce ullamcorpeyada10r, nibh nec adipiscing lacinia, massa sapien tincidunt liberoyada7, et vestibulum enim risus a erat. Proin
nisl turpis, pretium sit amet fermentum mollis, tempus eu nyada10ibh. Vivamus tristique dictum semper.
Donec vestibulum interdum mauris vel interdum. Aliquam sem enim, sagittis vel placerat a, pulvinar at odiyada10o. Pellentesque pretium nunc
a urna feugiat sit ayada10met ullayada6mcorpeyada7r esyada3t lacinyada1ia. Vestyada7ibulum ante ipsum primis in faucibus oryada4ci luctus et ultrices posuere cubilia Curae;
Nunc sed lectus justo. Sed in dolor massa. Etiam quis elit vitae diam sodales ornare id interdum nisi.
Quisque mollis ipsum nec odio pulvinar tempor. Cras turpis magna, venenatis vitae ultrices facilisis, dapibus sit amet elit. Vestibulum
ante ipsum yada9primis in faucibus orci luctus et ulyada6trices posuereyada10 cuyada2bilia Curae; Mauryada4is eget purus sapien, yada3ut laoreet nisl. Fusce quis lorem
dolor, vel malesuyada1ada ligula. Aliquam commodo pulvinyada9ar malesuada. Nam congue, nibh yada7eu varius lobortis, lacus mauris viverra urna, in
volutpat lorem purus at orci. Etiam a libero justo.
Proin dapibus lacus vel dolor luctus eget tristiyada1que quam fringilla. Sed a lacus magna, ac elementum tellus. In hac habitasse platea
dictumst. Duis sit amet lectus sityada6 amet massa sollicitudin lacinia non qyada10uis arcu. Sed sollicitudin dapibus metus sed pyada5haretra. Pellentesque
habitayada3nt morbi tristique senectus et netus et malesuadayada5 fames ac turpis eyada7gestas. Quisque at lacus a quam tempus tempus ac eget elit. Integer
odio eros, tempor id malesuyada9ada vel, myada4attis nec lacus. Pellentesque id magna quis eros fringilla convallis. Vestibulum ultricies libero quis
massa porttitor ultricies. Sed erat quam, facilisis ut consectetuyada2r interdum, ullamcorper sityada8 amet justo.";
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment