[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdenonbeta/kdom/patternist
From: Frans Englich <englich () kde ! org>
Date: 2006-10-31 23:16:51
Message-ID: 1162336611.059590.30536.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 600834 by englich:
This is the further optimizations I was thinking of. Contrast it to the discussion with Roberto.
CCMAIL: magic@magicninja.org
M +13 -0 IDEAS
--- trunk/kdenonbeta/kdom/patternist/IDEAS #600833:600834
@@ -45,6 +45,19 @@
* Rename MultiItemType to PrimeType? (FS)
* Keep a singleton instance of the NodeBuilder?
+* Currently the FunctionFactories do two expensive lookups: all the signatures are iterated(if/then)
+ for finding a match, and then the same list is walked for creating the function. This is very
+ expensive. I believe it can be simplified by:
+ -) Creating a function for the creation of each signature and function. This can in some cases be
+ greatly simplified with the use of template functions(and below, instantiating them with pointers)
+ -) Insert into a hash that maps function names to member function pointers for creating signatures
+ and the functions. The hash would also cache created signatures.
+
+ It's probably appropriate to do this after the atomic string stuff is deployed.
+* Don't store maximum arguments in FunctionSignature since that can be derived from the length of
+ the argument list, except for the case of variadic functions. But that exception can be communicated
+ with an IsVariadic flag in Expression::Property. This will reduce the size of FunctionSignature.
+
* Rewrite:
lower-case(lower-case(X)) to lower-case(X)
upper-case(upper-case(X)) to upper-case(X)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic