2015-07-10 35 views
1

我的应用程序使用FireDAC(Delphi XE7)来访问SQLite。SQLite在Mac上比Windows慢12倍

Mac版本比Windows版本慢大约12倍。

我关闭了journal_mode,并且没有日志文件出现。

我可以看到的唯一区别是Mac默认开启了checkpoint_fullfsync(它在Windows中默认关闭)。我在Mac上关闭了它,但是12倍速度下降依然存在。

Mac是最新的优胜美地。 SQLite3 -version报告3.8.5。

Windows 7正在使用任何版本的SQLite3被烧入FireDAC。

什么会导致这样巨大的性能差异?

+0

回答这个问题是否需要所有的细节? –

+0

Mac和Windows版本是否碰巧在不同的CPU /磁盘/文件系统/内存/操作系统上运行? –

+0

你确实需要提供更多信息。我很惊讶这个问题没有被投票结束。例如,一切的版本 - sqllite,windows,mac os,两台机器的硬件。每个实例的设置转储。您的元数据和代码。 –

回答

0

根据与Embarcadero合作的产品测试人员进行的测试,包括与使用相同查询的UNIDac进行比较,12倍速度放慢与FireDAC使用事务的方式有些相似。这个问题已经被添加到Embarcadero的bug报告系统中,并且被重复。

1

由于da-soft在他们的评论中说,将FDConnection.ResourceOptions.SilentMode设置为True可以解决问题。现在查询速度比OSX快十倍。

相关问题