Btw is there any limit for number of memory block, which can be requested ?
As far as my XML file has milions of nodes, may be that for each node is
created instance of TDOMNode class (or TDOMElement I do not know), which
in turn can cause that there is large amount of relative small memory
blocks ...

There is no limit, other than the fact that every block has some overhead, and hence you can allocate less memory in total if you allocate tons of small blocks instead of a few large ones. It's just 16 or 32 bytes per block though, so even with millions of blocks you won't lose more than a few tens of megabytes.


I think that, I found root of my problem.
As far as I have million nodes under few nodes, there is maintained TDOMNodeList, which stores nodes in TFPList
As new nodes are appended TFPList.Expand is called
And there is:
  if FCapacity > 127 then Inc(IncSize, FCapacity shr 2);

So if I have in list 1 000 000 items, then at once list is expanded by 250 000, which causes in one step out of memory So my question is: can I somehow control increment count ? I think that ATM no. So second question is can TFPList.Expand be modified, that for large FCapacity will be used smaller increment ? :-)

Thanks
-Laco.

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to