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.
IBDAC vs FIBPLUS: performance and memory usage
Re: IBDAC vs FIBPLUS: performance and memory usage
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.
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.
Re: IBDAC vs FIBPLUS: performance and memory usage
For correct comparison, please set the following options:
and check whether the performance changes.
Code: Select all
IBCQuery.Options.CacheBlobs := False;
IBCQuery.Options.DeferredBlobRead := True;