我的应用使用FireDAC(Delphi XE7)访问SQLite。
Mac版本比Windows版本慢约12倍。
我关闭了journal_mode,并且没有日记文件出现。
我能看到的唯一区别是Mac默认启用了checkpoint_fullfsync(在Windows中默认关闭它)。我已经在Mac上关闭了它,但是12X减速仍然存在。
Mac是最新的优胜美地。 SQLite3 -version报告3.8.5。
Windows 7正在使用任何版本的SQLite3加入FireDAC。
什么会导致如此巨大的性能差异?
答案 0 :(得分:1)
正如da-soft在评论中所说,将FDConnection.ResourceOptions.SilentMode设置为True可以解决问题。现在,OSX上的查询速度提高了十倍。
答案 1 :(得分:0)
根据与Embarcadero合作的产品测试人员进行的测试,包括使用相同查询与UNIDac进行比较,12X减速事件与FireDAC使用事务的方式有关。该问题已被添加到Embarcadero的错误报告系统中,并且已被复制。