[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