Repository: groovy
Updated Branches:
  refs/heads/GROOVY_2_6_X 3ecb690a0 -> e325e6fe0


Adjust the min value of dfa cache threshold

(cherry picked from commit 5c4bdad)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/e325e6fe
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/e325e6fe
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/e325e6fe

Branch: refs/heads/GROOVY_2_6_X
Commit: e325e6fe09bbc0c75b8c350500e41092db286b4f
Parents: 3ecb690
Author: sunlan <[email protected]>
Authored: Tue Aug 22 08:04:12 2017 +0800
Committer: sunlan <[email protected]>
Committed: Tue Aug 22 08:06:09 2017 +0800

----------------------------------------------------------------------
 .../groovy/parser/antlr4/internal/AtnManager.java  | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/e325e6fe/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/internal/AtnManager.java
----------------------------------------------------------------------
diff --git 
a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/internal/AtnManager.java
 
b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/internal/AtnManager.java
index 45c7a33..92b2d5f 100644
--- 
a/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/internal/AtnManager.java
+++ 
b/subprojects/parser-antlr4/src/main/java/org/apache/groovy/parser/antlr4/internal/AtnManager.java
@@ -35,9 +35,10 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
  */
 public class AtnManager {
     public static final ReentrantReadWriteLock RRWL = new 
ReentrantReadWriteLock(true);
-    private static final String CACHE_THRESHOLD_NAME = 
"groovy.antlr4.cache.threshold";
-    private static final int DEFAULT_CACHE_THRESHOLD = 100;
-    private static final int CACHE_THRESHOLD;
+    private static final String DFA_CACHE_THRESHOLD_OPT = 
"groovy.antlr4.cache.threshold";
+    private static final int DEFAULT_DFA_CACHE_THRESHOLD = 100;
+    private static final int MIN_DFA_CACHE_THRESHOLD = 50;
+    private static final int DFA_CACHE_THRESHOLD;
     private final Class ownerClass;
     private final ATN atn;
     private static final Map<Class, AtnWrapper> ATN_MAP = Maps.<Class, 
AtnWrapper>of(
@@ -46,18 +47,18 @@ public class AtnManager {
     );
 
     static {
-        int t = DEFAULT_CACHE_THRESHOLD;
+        int t = DEFAULT_DFA_CACHE_THRESHOLD;
 
         try {
-            t = Integer.parseInt(System.getProperty(CACHE_THRESHOLD_NAME));
+            t = Integer.parseInt(System.getProperty(DFA_CACHE_THRESHOLD_OPT));
 
             // cache threshold should be at least DEFAULT_CACHE_THRESHOLD for 
better performance
-            t = t < DEFAULT_CACHE_THRESHOLD ? DEFAULT_CACHE_THRESHOLD : t;
+            t = t < MIN_DFA_CACHE_THRESHOLD ? MIN_DFA_CACHE_THRESHOLD : t;
         } catch (Exception e) {
             // ignored
         }
 
-        CACHE_THRESHOLD = t;
+        DFA_CACHE_THRESHOLD = t;
     }
 
     public AtnManager(GroovyLangLexer lexer) {
@@ -87,7 +88,7 @@ public class AtnManager {
         }
 
         public ATN checkAndClear() {
-            if (0 != counter.incrementAndGet() % CACHE_THRESHOLD) {
+            if (0 != counter.incrementAndGet() % DFA_CACHE_THRESHOLD) {
                 return atn;
             }
 

Reply via email to