[Mulgara-svn] r205 - in trunk/src/jar: resolver-store/java/org/mulgara/store/statement/xa tuples/java/org/mulgara/store/tuples

ronald at mulgara.org ronald at mulgara.org
Thu Mar 1 07:47:56 UTC 2007


Author: ronald
Date: 2007-03-01 01:47:55 -0600 (Thu, 01 Mar 2007)
New Revision: 205

Modified:
   trunk/src/jar/resolver-store/java/org/mulgara/store/statement/xa/TripleAVLFile.java
   trunk/src/jar/tuples/java/org/mulgara/store/tuples/UnorderedProjection.java
Log:
Avoid creating Throwable instances unless they will get used. Creating these
is expensive because of the stack-trace. This fix results in a 30% - 40%
decrease of query times. This closes MGR-47 .


Modified: trunk/src/jar/resolver-store/java/org/mulgara/store/statement/xa/TripleAVLFile.java
===================================================================
--- trunk/src/jar/resolver-store/java/org/mulgara/store/statement/xa/TripleAVLFile.java	2007-03-01 07:35:36 UTC (rev 204)
+++ trunk/src/jar/resolver-store/java/org/mulgara/store/statement/xa/TripleAVLFile.java	2007-03-01 07:47:55 UTC (rev 205)
@@ -1809,7 +1809,7 @@
     private final class TuplesImpl implements StoreTuples {
 
       // keep a stack trace of the instantiation of this object
-      private Throwable stack = new Throwable();
+      private Throwable stack = logger.isDebugEnabled() ? new Throwable() : null;
       private List objectIds = new ArrayList();
 
       private long[] startTriple;
@@ -2272,7 +2272,7 @@
 
           copy.variables = getVariables();
 
-          copy.stack = new Throwable();
+          copy.stack = logger.isDebugEnabled() ? new Throwable() : null;
           copy.objectIds = new ArrayList(objectIds);
           copy.objectIds.add(new Integer(System.identityHashCode(this)));
 

Modified: trunk/src/jar/tuples/java/org/mulgara/store/tuples/UnorderedProjection.java
===================================================================
--- trunk/src/jar/tuples/java/org/mulgara/store/tuples/UnorderedProjection.java	2007-03-01 07:35:36 UTC (rev 204)
+++ trunk/src/jar/tuples/java/org/mulgara/store/tuples/UnorderedProjection.java	2007-03-01 07:47:55 UTC (rev 205)
@@ -201,7 +201,9 @@
 
     if (columnMapping[column] == ABSENT_COLUMN) {
 
-      logger.info(getVariables()[column] + " is never bound", new Throwable());
+      if (logger.isInfoEnabled()) {
+        logger.info(getVariables()[column] + " is never bound", new Throwable());
+      }
 
       return true;
     }




More information about the Mulgara-svn mailing list