Advertisement
Guest User

RegexPerformanceTest

a guest
Aug 1st, 2012
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.30 KB | None | 0 0
  1. import java.util.regex.PatternSyntaxException;
  2.  
  3. public class RegexPerformanceTest
  4. {
  5.     public static void main(String[] args)
  6.     {
  7.         String regex1 = "(?im)^Hi there (.*$)(?<! is here)";
  8.         String regex2 = "(?im)^Hi there (.*)(?<! is here)$";
  9.         String errorTest = "Hi there John Doe is here";
  10.         String successTest = "Hi there John Doe (jdo)";
  11.         int repetitions = 1000000;
  12.         try
  13.         {
  14.             System.out.println("Regex1, success: " + testRegexPerformance(regex1, successTest, repetitions));   // ~1200
  15.             System.out.println("Regex1, error: " + testRegexPerformance(regex1, errorTest, repetitions));       // ~1200
  16.             System.out.println("Regex2, success: " + testRegexPerformance(regex2, successTest, repetitions));   // ~1100
  17.             System.out.println("Regex2, error: " + testRegexPerformance(regex2, errorTest, repetitions));       // ~1800
  18.         }
  19.         catch(PatternSyntaxException e)
  20.         {
  21.             e.printStackTrace();
  22.         }
  23.     }
  24.  
  25.     private static long testRegexPerformance(String regex, String subject, int numberOfRepetitions) throws PatternSyntaxException
  26.     {
  27.         boolean foundMatch;
  28.         long endTime = 0;
  29.         long startTime = 0;
  30.         startTime = System.currentTimeMillis();
  31.         for (int i = 0; i < numberOfRepetitions; i++)
  32.         {
  33.             foundMatch = subject.matches(regex);
  34.         }
  35.         endTime = System.currentTimeMillis();
  36.         return endTime - startTime;
  37.     }
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement