IBDAC vs FIBPLUS: performance and memory usage

Discussion of open issues, suggestions and bugs regarding IBDAC (InterBase Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
madaleno
Posts: 2
Joined: Thu 26 Jun 2014 09:01

IBDAC vs FIBPLUS: performance and memory usage

Post by madaleno » Thu 26 Jun 2014 09:41

Hi,

I came from FIBPlus and bought IBDAC to replace it.
I am starting to test IBDAC to check if it can replace FIBPlus in a huge project I have.

In a simple test I created a console app that does a "select * from mytable" and goes from the first record to the last, reads all fields and exports them to a MemoryStream.

Controls used: TIBCQuery for IBDac and TpFIBDataSet for FIBPlus. Both with default properties.

The results show that IBDAC is 2 times slower and also uses 2 times more memory in most tests.

Results:
Table 1: 37648 records
IBDAC: 118MB - 7.9s
FIBPlus: 43MB - 4.8s

Table 2: 346724 records
IBDAC: 276MB - 13.5s
FIBPlus: 229MB - 11.5s

Table 3: 781782 records
IBDAC: 1 237MB - 50.3s
FIBPlus: 893MB - 31.5s


Is there any way to make IBDAC faster and to use less memory.
Any tips to change IBDAC properties to achieve this?

Thanks.

madaleno
Posts: 2
Joined: Thu 26 Jun 2014 09:01

Re: IBDAC vs FIBPLUS: performance and memory usage

Post by madaleno » Thu 26 Jun 2014 16:01

Update:

Memory consumption was fixed by setting UniDirectional to True.

Performance is still better with FIBPlus, but that shouldn't be a major issue since exporting 781842 records takes only 5 seconds more with IBDAC.

I can now move on with the migration.

PavloP
Devart Team
Posts: 149
Joined: Fri 24 Jan 2014 12:33

Re: IBDAC vs FIBPLUS: performance and memory usage

Post by PavloP » Fri 27 Jun 2014 12:55

For correct comparison, please set the following options:

Code: Select all

  IBCQuery.Options.CacheBlobs := False;
  IBCQuery.Options.DeferredBlobRead := True;
and check whether the performance changes.

Post Reply