2.5万条数据。
加载数据集速度对比:
clientdataset | MemTableEh | kbmMemTable | dxMemData |
656 | 984 | 1062 | 1359 |
656 | 1016 | 1031 | 1344 |
625 | 1031 | 1031 | 1343 |
645.6666667 | 1010.333333 | 1041.333333 | 1348.6667 |
加载数据集+savetofile(MemTableEh没有这个功能)
clientdataset | kbmMemTable | dxMemData |
750 | 1359 | 2359 |
750 | 1344 | 2344 |
734 | 1344 | 2328 |
744.6666667 | 1349 | 2343.6667 |
已经把adodataset设为最优模式:CursorLocation->clUseServer,CursorType->ctOpenForwardOnly,LockType->ltReadOnly,所有数据集都DisableControls了。
可见,光是加载数据集而言,clientdataset是最快的。
clientdataset要使用midas.dll,很容易跟其他delphi开发的软件的有冲突,我就碰到过很多次,每次都要重新覆盖和注册midas.dll,很麻烦。而且,网上有篇文章说clientdataset locate速度奇慢。
而memtableeh不支持savetofile,但有时还真需要这个功能,性能虽然比kbmMemTable快一点点,但我还是决定弃用。