gpt4 book ai didi

performance - 为什么 SQLite 3.7.2 在 Step 操作上比 3.7.9 快 3 倍

转载 作者:行者123 更新时间:2023-12-03 18:00:09 25 4
gpt4 key购买 nike

我已经从 http://olex.openlogic.com/packages/sqlite/3.7.2 checkout 了 3.7.2 SQLite
我还从 http://www.sqlite.org/sqlite-amalgamation-3070900.zip 获取了最新的 3.7.9

使用相同的 Borland C++ Compiler 5.5.1 设置编译两者

@echo off

set PATH=C:\Borland\Bcc55\Bin;%PATH%

rem Compilation Options
rem http://www.sqlite.org/compile.html#omitfeatures

set extra=%extra% -DSQLITE_DEFAULT_MEMSTATUS=0
set extra=%extra% -DSQLITE_TEMP_STORE=2

set extra=%extra% -DSQLITE_ENABLE_RTREE=1
set extra=%extra% -DSQLITE_ENABLE_COLUMN_METADATA=0
set extra=%extra% -DSQLITE_OMIT_DEPRECATED=1
set extra=%extra% -DSQLITE_OMIT_COMPILEOPTION_DIAGS=1
set extra=%extra% -DSQLITE_OMIT_PROGRESS_CALLBACK=1
set extra=%extra% -DSQLITE_OMIT_UTF16
set extra=%extra% -DSQLITE_OMIT_LOAD_EXTENSION=1
set extra=%extra% -DSQLITE_OMIT_EXPLAIN

@echo on

bcc32.exe -6 -O2 -c -d -u- -w- %extra% sqlite3.c
pause

使用 3.7.2,我需要 500 毫秒来执行 25 000 步操作,而 3.7.9 需要更多时间。

SQL语句很简单
select * from Cards

其中 Cards 是一个包含 16 个文本和 4 个整数列的表

SQLite 在最近的版本中变慢了吗?

最佳答案

AFAIK 这些版本之间在实现速度方面没有太大区别。最新的 3.7.9 更快。

我认为您在两个实现中没有使用相同的内存管理器。我猜您的 malloc/free 外部引用不是通过相同的方法实现的:您的 3.7.2 可能使用的是 Delphi FastMM4,而 3.7.9 可能使用的是默认的 Windows 或 MSCRT 堆。

关于performance - 为什么 SQLite 3.7.2 在 Step 操作上比 3.7.9 快 3 倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8710781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com