Hi All,

I noticed some big differences in performance between FB3 and FB2.5, so with 
help form Vlad i got debug builds to do some profiling.
Anyway i ended up to set-up a VM with firebird source-tree and needed tools.
This has been improved compared to some years ago, so i’m happy here to have 
everything quick up and running 


The performance problem is in class ValueListNode

This class has and items property which is in array and gets modified by 
function calls of the class.
No problem here, but ValueListNode is inherited from ExprNode and there we have 
2 arrays dsqlChildNodes and jrdChildNodes

for every call to add() in ValueListNode the method resetChildNodes() is called;
As resetChildNodes() rebuilds all nodes in dsqlChildNodes and jrdChildNodes 
with items as base, you can understand when adding 200 items.
2nd item added => (clear and 4 new items), 3rd item added (clear and 6 new 
items), etc...
This explodes by the more items are added.

Further i’m not sure why for every added item there are 2 copied (in dsqlChild 
and jrdChild). 
Is ValueListNode only used at places where dsqlChild and jrdChild also really 
matters?


Kind Regards,
Arno Brinkman




------------------------------------------------------------------------------
Presto, an open source distributed SQL query engine for big data, initially
developed by Facebook, enables you to easily query your data on Hadoop in a 
more interactive manner. Teradata is also now providing full enterprise
support for Presto. Download a free open source copy now.
http://pubads.g.doubleclick.net/gampad/clk?id=250295911&iu=/4140
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to