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