我的问题是无论我如何构建sqlite -我的二进制文件比sqlite下载页面上预编译的要慢得多(根据查询的不同,大约是3-6倍)。
我正在使用来自合并源代码的sqlite3.h和sqlite3.c:
http://www.sqlite.org/sqlite-amalgamation-3070602.zip
我在编译sqlite时添加了以下标志:
gcc
-s -O4 -I. -fomit-frame-pointer
-DNDEBUG
-DSQLITE_OS_WIN=1
-DSQLITE_HAVE_READLINE=0
-DSQLITE_THREADSAFE=1
-DSQLITE_TEMP_STORE=2
-DSQLITE_ENABLE_RTREE
-DSQLITE_ENABLE_FTS3
-DSQLITE_OMIT_COMPILEOPTION_DIAGS
-DSQLITE_ENABLE_COLUMN_METADATA
-DNO_TCL我用MINGW和MSVS2010构建了它。
有谁知道如何构建sqlite以获得与下载页面上相同的二进制文件?
任何帮助都将不胜感激。
发布于 2011-06-29 04:27:08
遵循SQLite wiki : How to compile上的指南,检查Make传递给编译器的参数是什么。我的第一个怀疑对象是-O4,因为GCC理解的最高级别是-O3,甚至这通常比-O2或-Os更糟糕(因为小尺寸的==没有CPU缓存未命中,并且-O3非常严重地膨胀了二进制文件)。
虽然我可以看到不同的方法:Build On Windows Without Tcl使用-O2,但ticket #931使用该死的-O4 "Gentoo Ricer模式“。无论哪种方式,如果不指定目标体系结构,这些优化开关都没有多大价值:尝试使用-march=core2或-march=native进行自动检测,但请记住,此类代码不能在较早的CPU上运行。-march=nocona可以在比奔腾4更新的任何东西上工作,并且仍然为编译器提供了很多有用的优化空间。
https://stackoverflow.com/questions/5703874
复制相似问题