跨平台编译了ceres,结果在android平台上运行的太慢,优化一次要0.3秒左右,时不时要一两秒。这太扯了。没辙了,在google上瞎搜索,看到
Jacobian evaluation is very slow in my own project
一开始还没明白,后来明白了。
要在Android Studio的app gradle里加上
arguments '-DCMAKE_BUILD_TYPE=Release'
或在cmakelist.txt里添加
set(CMAKE_BUILD_TYPE "release")
意思是告诉CMake我的项目编译时,要编译成release版本,这时项目就能发挥出ceres的完全实力。也许,不这样项目会有对ceres调试的信息,会降低速度。这样调整后,速度达到0.04秒一次优化,提升了大约七八倍。