[QDB] 一个新的原生二进制转换器,生成文件的体积最小

QDB 新实现了一个 TQBinaryConverter 做为原生的二进制格式,它的源码位于 qconverter_stds.pas 里,相比 MsgPack、Json 及 FireDAC  的二进制格式,其体积也更小,速度也更快。同样 10 万条记录,下面是几种格式的保存结果对比(均未压缩):

  • TQBinaryConverter 用时 203 ms( 1.00x ),文件大小:6.71 MB( 1.00x )
  • TQTMsgPackConverter 用时 797 ms( 3.93x ),文件大小:7.91 MB( 1.18x )
  • TQJsonConverter 用时 953 ms( 4.69x ),文件大小:12.7 MB ( 1.89x )
  • TQFDBinaryConverter 用时 1219 ms( 6.00x ),文件大小:12.1 MB( 1.80x )
  • TQFDJsonConverter 用时 1985 ms( 9.78x ),文件大小:25.1 MB( 3.74x )
  • TQFDXMLConverter 用时 1938 ms( 9.54x ),文件大小:24.8 MB( 3.70x )

好了,排除保存时间的比较,单看文件体积,QDB 新的原生格式也要明显小于其它存贮格式,实在是夜黑风高、传送数据的不二选择。TQFDBinaryConverter 的写入效率比我想像的有点差,需要找一下原因,优化下。

分享到: