[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