我正在使用Android平台中的arm组装机器代码进行软件优化。我使用NDK v9构建源代码。如果我在调试模式下构建我的性能提高了40%,如果我在发布模式下构建,性能类似于c代码。我能知道为什么在调试和发布模式下性能有差异吗?我在make文件中设置了优化级别O3。
我的Android.mk文件
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := armjtest
LOCAL_CFLAGS := -g -DDEBUG -O3
LOCAL_LDLIBS += $(LOCAL_PATH)/libarmjit.a
LOCAL_SRC_FILES := test.c
include $(BUILD_EXECUTABLE)
Application.mk file
APP_ABI := armeabi-v7a
APP_OPTIM := release
APP_STL := gnustl_static
我正在使用gnustl_static lib。我正在使用的ndk构建命令。 ndk-build V = 1 在ndk-build命令中,它使用-Os(空间优化)标志。 ndk中的构建和释放命令没有太大区别。
发布模式命令ndk使用
调试模式命令ndk使用 -O0 -UNDEBUG -marm -fno-omit-frame-pointer在调试模式下启用这些额外标志。
请帮我解决这个问题。