我应该为我的库和应用程序使用哪些编译器标志以获得最佳性能 NDK (CMake)

Posted

技术标签:

【中文标题】我应该为我的库和应用程序使用哪些编译器标志以获得最佳性能 NDK (CMake)【英文标题】:What compiler flags should I use for my libraries and apps to get the best performance NDK (CMake) 【发布时间】:2019-11-20 14:15:30 【问题描述】:

我的库和我的应用程序使用 NDK(CMake)。

所以,问题是 - 有什么建议应该如何配置 CMake 文件以获得最佳性能?

例如,如果您需要获得一些关于如何配置 .gitignore 文件的建议,您可以访问这个 github 页面

https://github.com/github/gitignore

有很多例子,你可以选择你需要的。 NDK(CMake)有类似的东西吗?

【问题讨论】:

您能否更具体地说明您所说的最佳性能是什么意思?一般来说,*** 不适合提供一般建议最佳实践示例,因为这些类型的问题会导致固执己见的答案。如果您对特定段代码有特定问题,请将其添加到您的问题帖子中。 【参考方案1】:

当您只需选择发布版本时,CMake 吸收了大量启发式方法以提供最佳性能。即使您对自己的代码在做什么了如指掌,也不容易超越它。

不过,广泛的分析和微调可能会很有成效。请记住,不同设备的行为方式可能不同:它们的 CPU 可能会因为太热而减速,或者您的线程可能会发现自己位于较慢的内核上……

如果您有能力针对一台设备进行优化,那么您的机会就更大。

【讨论】:

以上是关于我应该为我的库和应用程序使用哪些编译器标志以获得最佳性能 NDK (CMake)的主要内容,如果未能解决你的问题,请参考以下文章

如何查看哪些标志 -march=native 将激活?

您为 GFORTRAN 调试器/编译器设置了哪些标志来捕获错误代码?

如何编译使用从不同编译器编译的库的应用程序?

我应该为我的 POS Web 应用程序使用构建 API 吗?

我可以从 Dalvik 和 Android 工具链中获得哪些优化?

物理仪表板/状态板的库和伪代码