Created
May 11, 2012 22:44
-
-
Save mikeobrien/2662898 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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