[Schmitzm-commits] r2009 - trunk/schmitzm-core/src/main/java/de/schmitzm/regex

scm-commit at wald.intevation.org scm-commit at wald.intevation.org
Sat May 26 21:00:47 CEST 2012


Author: alfonx
Date: 2012-05-26 21:00:46 +0200 (Sat, 26 May 2012)
New Revision: 2009

Modified:
   trunk/schmitzm-core/src/main/java/de/schmitzm/regex/RegexCache.java
Log:
matcher cache in RegExCache wieder entfernt testweise...

Modified: trunk/schmitzm-core/src/main/java/de/schmitzm/regex/RegexCache.java
===================================================================
--- trunk/schmitzm-core/src/main/java/de/schmitzm/regex/RegexCache.java	2012-05-25 22:38:55 UTC (rev 2008)
+++ trunk/schmitzm-core/src/main/java/de/schmitzm/regex/RegexCache.java	2012-05-26 19:00:46 UTC (rev 2009)
@@ -87,9 +87,38 @@
 		}
 	}
 
-	final static Map<String, ThreadLocal<Matcher>> matchersCachedThreadLocalPerRegex = Collections
-			.synchronizedMap(new LimitedHashMap<String, ThreadLocal<Matcher>>(10000, TRUNC_METHOD.OLDEST_GET));
-
+//	final static Map<String, ThreadLocal<Matcher>> matchersCachedThreadLocalPerRegex = Collections
+//			.synchronizedMap(new LimitedHashMap<String, ThreadLocal<Matcher>>(10000, TRUNC_METHOD.OLDEST_GET));
+//
+//	/**
+//	 * Diese Methode ist gedacht um die Erstellung von Matcher-Objekten in der JVM zu reduzieren. Es für bis zu 10000
+//	 * RegEx ein Cache verwaltet. Jeder dieser Caches ist ein ThreadLocal-Cache von Matchern. Somit liefert diese Methde
+//	 * für die selbe RegEx auf N Threads N unterschiedliche Matcher.<br/>
+//	 * Die Matcher werden für die Regex gecached. Wird ein Matcher für eine gecachte Regex mit einem anderen TEXT
+//	 * angeforderd, wird zuerst {@link Matcher#reset(CharSequence)} ausgeführt.
+//	 */
+//	public Matcher getMatcher(final String regex, final String text) {
+//		ThreadLocal<Matcher> threadLocal = matchersCachedThreadLocalPerRegex.get(regex);
+//
+//		synchronized (regex) {
+//
+//			if (threadLocal == null) {
+//
+//				threadLocal = new ThreadLocal<Matcher>() {
+//
+//					@Override
+//					protected Matcher initialValue() {
+//						return getPattern(regex).matcher(text);
+//					}
+//				};
+//				matchersCachedThreadLocalPerRegex.put(regex, threadLocal);
+//			}
+//
+//		}
+//
+//		return threadLocal.get().reset(text);
+//	}
+	
 	/**
 	 * Diese Methode ist gedacht um die Erstellung von Matcher-Objekten in der JVM zu reduzieren. Es für bis zu 10000
 	 * RegEx ein Cache verwaltet. Jeder dieser Caches ist ein ThreadLocal-Cache von Matchern. Somit liefert diese Methde
@@ -98,27 +127,30 @@
 	 * angeforderd, wird zuerst {@link Matcher#reset(CharSequence)} ausgeführt.
 	 */
 	public Matcher getMatcher(final String regex, final String text) {
-		ThreadLocal<Matcher> threadLocal = matchersCachedThreadLocalPerRegex.get(regex);
+//		ThreadLocal<Matcher> threadLocal = matchersCachedThreadLocalPerRegex.get(regex);
+//
+//		synchronized (regex) {
+//
+//			if (threadLocal == null) {
+//
+//				threadLocal = new ThreadLocal<Matcher>() {
+//
+//					@Override
+//					protected Matcher initialValue() {
+//						return getPattern(regex).matcher(text);
+//					}
+//				};
+//				matchersCachedThreadLocalPerRegex.put(regex, threadLocal);
+//			}
+//
+//		}
+//
+//		return threadLocal.get().reset(text);
+		
+		return getPattern(regex).matcher(text);
+	}
 
-		synchronized (regex) {
 
-			if (threadLocal == null) {
-
-				threadLocal = new ThreadLocal<Matcher>() {
-
-					@Override
-					protected Matcher initialValue() {
-						return getPattern(regex).matcher(text);
-					}
-				};
-				matchersCachedThreadLocalPerRegex.put(regex, threadLocal);
-			}
-
-		}
-
-		return threadLocal.get().reset(text);
-	}
-
 	/**
 	 * Will throw java exceptions when pattern won't compile.
 	 * 



More information about the Schmitzm-commits mailing list