Hi Jo,
*"This is the purpose of the DOD paradigm to think about how the data should be input and how it should be treated. This would be too pretentious from me to say it has been used here, but trying to treat the data the more linearly possible is a good start, it saves memory and speed. I can bet easily, speed increases massively on yours or Jeremie's if lot more than 2 or 3 parameters are treated compared to mine. One of the effects of using DOD is you're ending by processing the data linearly which avoid any query next and make your code really fast and reactive. "* The DOD is a nice pattern , I agree. *"About the function calls thing, I would say, that making one function call instead of many would not influence so much speed results. A function is a simple object as many other stored on the heap once created and called with arguments (other objects). There is no special initialisation nor building done each time. But even by considering this, and making my function called with xsi parameters passed one by one, this is still faster (20perc on my machine) and this for many different other reasons."* I would like to differ here, please look at the simple logic or semantics. If want to grab data from XSI, it takes some time to query the data. If i query once and store it in a hash, do not have to query it again, I simply look at my stored hash which is way faster. If you wrap a function which is trying to query data inside of itself, every time you make a call to the function you adding the overhead by the data query. As simple as that. You can see the this has already worked for Jeremy from his reply above. *"*If I didn't chose any dictionaries based implementations as you did, this is because the python hash table implementation is generic and use lot of memory with lost of blocks where py list are implemented as linked list and permit really fast appending, O(1).*"* * * In this case here, the reason to use dictionary was for faster look ups. For look ups specially dictionary are a way to go for me always. I would rather use a dictionary then to store in a list/tuple and then have to do dirty labmdas or other stuff to retreive by list.index() and what not.You really can't beat the python hash table. They may have more memory requirements, but these days, it really is not a problem. For tasks such as these, I suspect it really would not make impact even on a machine with 8 gigs. The hash table are good and really good for one thing, fast look ups. No wonder Google uses python as their main scripting languages and the dictionary is one good reason for it. You can easily verify this on Official Google Developers Videos on You Tube http://www.youtube.com/watch?v=haycL41dAhg. Cheers !

