[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