-
-
Save BrzVlad/a2345bac59cf0ee472e27b7365a2379f to your computer and use it in GitHub Desktop.
Regex Benchmark
This file contains 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.Text.RegularExpressions; | |
public class Program { | |
public const string _loremIpsum = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere eget magna a consectetur. Integer a libero volutpat, tempus lectus ac, aliquam enim. Etiam a ipsum nec mi vestibulum scelerisque. " + | |
"Ut orci felis, efficitur molestie posuere id, eleifend vel urna. Duis lectus velit, iaculis nec ex non, consectetur blandit ex. Vestibulum nec mi suscipit, tempor purus at, convallis ligula. Sed auctor lobortis " + | |
"porta. Donec nec quam non elit aliquet tristique sit amet id tortor. Nullam vitae cursus metus, vitae pulvinar nisl. Mauris dui nisi, lobortis eget placerat vel, tempus eu mauris. Suspendisse pretium egestas urna " + | |
"vitae molestie.Mauris id odio mollis, sollicitudin odio in, tincidunt libero. Duis dolor nunc, placerat eu tincidunt eu, vehicula a arcu.Curabitur vitae eros libero. Nullam in eros enim. Praesent odio lorem, fringilla " + | |
"ut eros id, tristique semper ipsum. Nunc accumsan magna nulla, sit amet pellentesque neque eleifend tempus. Pellentesque a fermentum nisi. Curabitur non facilisis diam. Pellentesque habitant morbi tristique senectus et " + | |
"netus et malesuada fames ac turpis egestas. Curabitur finibus enim leo, vel luctus lacus volutpat sit amet. Suspendisse potenti. Curabitur nec ex lobortis, tincidunt nisl in, semper lacus. Maecenas bibendum suscipit elit, " + | |
"et convallis augue pharetra eu.Donec vitae vestibulum diam. Suspendisse cursus vel augue quis elementum. Ut tempus quam purus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.Proin lacus " + | |
"diam, maximus a vulputate at, vehicula sit amet ipsum. Morbi lobortis libero dui, eu volutpat felis pellentesque in. Praesent sit amet venenatis nisl, quis semper lorem.Lorem ipsum dolor sit amet, consectetur adipiscing elit. " + | |
"Etiam tempor lectus vitae est fermentum, et molestie leo egestas. Sed vitae magna nulla. Proin a aliquet mauris, id fringilla lorem.Fusce pellentesque, sapien et imperdiet scelerisque, sapien orci facilisis elit, sit " + | |
"amet tristique nisi neque vitae mi. Maecenas sit amet imperdiet elit, euismod maximus est. Donec maximus, ex non efficitur bibendum, elit mi porta orci, vel commodo ipsum orci eu nisl. Integer maximus urna ac finibus blandit. " + | |
"In hac habitasse platea dictumst.Suspendisse augue libero, lacinia eu lobortis venenatis, pretium eget mi.Cras eget feugiat est, in venenatis lectus. Sed luctus, sapien cursus semper ullamcorper, urna sapien consequat orci, " + | |
"vitae congue mauris enim tempus neque. Sed in sagittis lacus. Nullam sodales interdum enim, venenatis sodales velit vehicula quis.Aliquam congue eu ex facilisis vestibulum. Nunc congue justo nulla, sit amet imperdiet mi " + | |
"sodales in. Integer quis magna a sem euismod mollis ut ac eros. Vestibulum tincidunt scelerisque lacus. Ut ornare diam et purus gravida, quis aliquam dolor ultrices. Nulla elit arcu, eleifend id erat quis, tempus ultricies " + | |
"lorem.Etiam suscipit magna vel nunc malesuada, nec faucibus nisi hendrerit. Nam sollicitudin, nisi at sodales egestas, urna odio blandit leo, non tristique lectus nunc ut libero. Aliquam pulvinar nulla vitae nibh venenatis, " + | |
"sed euismod ligula egestas. Pellentesque malesuada congue sapien sit amet venenatis.Nulla blandit mi sit amet laoreet consectetur.Aliquam sodales non turpis ut suscipit. Morbi nec pretium risus, imperdiet accumsan nunc.Sed at " + | |
"arcu augue. Curabitur dapibus aliquet felis et blandit. Maecenas."; | |
public Regex _searchWords = new Regex(@"tempus|magna|semper", RegexOptions.Compiled | RegexOptions.IgnoreCase); | |
public int MatchesWords() => _searchWords.Matches(_loremIpsum).Count; | |
public static void Main (string[] args) | |
{ | |
Program p = new Program (); | |
int result = 0; | |
const int iterations = 500000; | |
for (int i = 0; i < iterations; i++) | |
result = p.MatchesWords (); | |
Console.WriteLine (result); | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment