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

scm-commit at wald.intevation.org scm-commit at wald.intevation.org
Sun May 27 23:16:03 CEST 2012


Author: alfonx
Date: 2012-05-27 23:16:03 +0200 (Sun, 27 May 2012)
New Revision: 2035

Modified:
   trunk/schmitzm-core/src/main/java/de/schmitzm/regex/RegexCache.java
Log:
RegEx-Cache results-cache auf eien RegEx-mindestl?\195?\164nge beschr?\195?\164nkt

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-27 21:13:51 UTC (rev 2034)
+++ trunk/schmitzm-core/src/main/java/de/schmitzm/regex/RegexCache.java	2012-05-27 21:16:03 UTC (rev 2035)
@@ -33,16 +33,21 @@
 	public static boolean resultsCacheEnabled = true;
 
 	/**
-	 * TODO Ein String der länger ist als die hier angegebene Anzahl Zeichen wir nicht gecached. Die Wahrscheinlichkeit,
-	 * dass der selbe Sting nochmal auftaucht wird als zu gering eingeschätzt.
+	 * Ein String der länger ist als die hier angegebene Anzahl Zeichen wir nicht gecached. Die Wahrscheinlichkeit, dass
+	 * der selbe Sting nochmal auftaucht wird als zu gering eingeschätzt.
 	 **/
-	private static final int CACHE_VALUES_TO_RESULT_MAX_VALUE_LENGTH = 100;
+	private static final int CACHE_VALUES_TO_RESULT_MAX_VALUE_LENGTH = 60;
 
 	/**
-	 * TODO Ein String der kürzer als die hier angegebene Anzahl Zeichen wir nicht gecached.
+	 * Ein String der kürzer als die hier angegebene Anzahl Zeichen wir nicht gecached.
 	 **/
 	private static final int CACHE_VALUES_TO_RESULT_MIN_VALUE_LENGTH = 1;
 
+	/**
+	 * Der Results-Cache greift nur für Regex länger als soviel Zeichen:
+	 */
+	private static final int CACHE_VALUES_TO_RESULT_MIN_REGEX_LENGTH = 10;
+
 	private final ConcurrentLRUCache<String, ThreadLocal<Matcher>> matchersCache = new ConcurrentLRUCache<String, ThreadLocal<Matcher>>(
 			55000, 45000);
 
@@ -56,7 +61,7 @@
 	}
 
 	private final ConcurrentLRUCache<String, MyMatchResult> resultsCache = new ConcurrentLRUCache<String, MyMatchResult>(
-			200000, 150000);
+			300000, 250000);
 
 	private RegexCache() {
 		singletonInstance = this;
@@ -145,7 +150,8 @@
 
 		// Wenn der value-String zu lang oder zu kurz ist, dann einfach so machten
 		if (!resultsCacheEnabled || value.length() < CACHE_VALUES_TO_RESULT_MIN_VALUE_LENGTH
-				|| value.length() > CACHE_VALUES_TO_RESULT_MAX_VALUE_LENGTH) {
+				|| value.length() > CACHE_VALUES_TO_RESULT_MAX_VALUE_LENGTH
+				|| regex.length() < CACHE_VALUES_TO_RESULT_MIN_REGEX_LENGTH) {
 			final Matcher m = getMatcher(regex, value);
 			final boolean found = m.find();
 			return found ? m.toMatchResult() : null;



More information about the Schmitzm-commits mailing list