details: /erp/devel/main/rev/abe749f609f8
changeset: 9075:abe749f609f8
user: Stefan Hühner <stefan.huehner <at> openbravo.com>
date: Thu Dec 02 19:19:21 2010 +0100
summary: Fixed 15362: Speedup wad by caching many repeated queries.
Remove nearly 130.000 db-queries by using a small cache of around 350 entries
details: /erp/devel/main/rev/75b773c7562f
changeset: 9076:75b773c7562f
user: RM packaging bot <staff.rm <at> openbravo.com>
date: Fri Dec 03 00:56:47 2010 +0000
summary: CI: promote changesets from pi to main
diffstat:
src-db/database/sourcedata/AD_MODULE.xml | 4 ++--
src-wad/src/org/openbravo/wad/WadUtility.java | 12 +++++++++++-
2 files changed, 13 insertions(+), 3 deletions(-)
diffs (57 lines):
diff -r a9676a2a9f36 -r 75b773c7562f src-db/database/sourcedata/AD_MODULE.xml
--- a/src-db/database/sourcedata/AD_MODULE.xml Thu Dec 02 18:02:57 2010 +0100
+++ b/src-db/database/sourcedata/AD_MODULE.xml Fri Dec 03 00:56:47 2010 +0000
@@ -6,7 +6,7 @@
<!--0--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
<!--0--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
<!--0--> <NAME><![CDATA[Core]]></NAME>
-<!--0--> <VERSION><![CDATA[2.50.19053]]></VERSION>
+<!--0--> <VERSION><![CDATA[2.50.19075]]></VERSION>
<!--0--> <DESCRIPTION><![CDATA[Core module is the base one]]></DESCRIPTION>
<!--0--> <HELP><![CDATA[Core module is the base one, all developments in core
are included as part of the standard Openbravo ERP.]]></HELP>
<!--0--> <URL><![CDATA[www.openbravo.com]]></URL>
@@ -22,7 +22,7 @@
<!--0--> <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
<!--0--> <HASREFERENCEDATA><![CDATA[Y]]></HASREFERENCEDATA>
<!--0--> <REFERENCEDATAINFO><![CDATA[Standard document types for orders,
invoices, etc. and settings]]></REFERENCEDATAINFO>
-<!--0--> <VERSION_LABEL><![CDATA[dev]]></VERSION_LABEL>
+<!--0--> <VERSION_LABEL><![CDATA[CI]]></VERSION_LABEL>
<!--0--> <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
<!--0--></AD_MODULE>
diff -r a9676a2a9f36 -r 75b773c7562f
src-wad/src/org/openbravo/wad/WadUtility.java
--- a/src-wad/src/org/openbravo/wad/WadUtility.java Thu Dec 02 18:02:57
2010 +0100
+++ b/src-wad/src/org/openbravo/wad/WadUtility.java Fri Dec 03 00:56:47
2010 +0000
@@ -24,6 +24,7 @@
import java.io.OutputStreamWriter;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.Map;
import java.util.Properties;
import java.util.StringTokenizer;
import java.util.Vector;
@@ -45,6 +46,9 @@
{ "^", " != " }, { "-", " != " } };
private static String[][] unions = { { "|", " || " }, { "&", " && " } };
+ // small cache to store mapping of <subRef + "-" + parentRef,classname>
+ private static Map<String, String> referenceClassnameCache = new
HashMap<String, String>();
+
public WadUtility() {
PropertyConfigurator.configure("log4j.lcf");
}
@@ -791,7 +795,13 @@
WADControl control;
try {
- classname = WadUtilityData.getReferenceClassName(conn, subRef,
parentRef);
+ // lookup value from cache, if not found, search in db and put into cache
+ String cacheKey = subRef + "-" + parentRef;
+ classname = referenceClassnameCache.get(cacheKey);
+ if (classname == null) {
+ classname = WadUtilityData.getReferenceClassName(conn, subRef,
parentRef);
+ referenceClassnameCache.put(cacheKey, classname);
+ }
} catch (ServletException e1) {
log4j.warn("Couldn't find reference classname ref " + parentRef + ",
subRef " + subRef, e1);
return new WADControl();
------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits