我应该使用哪个编译标志 - > Os还是O2?

时间:2012-10-08 09:05:40

标签: c compilation operating-system ram

我目前正在研究嵌入式设备应用程序(在C中)。我应该使用什么优化标志来编译该应用程序,记住它只有96 MB的RAM。

另外,请注意,在这个应用程序中,我基本上是预处理JPEG图像。那么我应该使用哪种优化标志?

此外,剥离此应用程序会对效率和速度产生任何影响吗?

我运行此应用程序的操作系统是Linux 2.6.37。

2 个答案:

答案 0 :(得分:2)

通常,优化会增加二进制大小。此外,根据您拥有的数据集,这对速度的影响根本无法预测。唯一的方法是使用不同的标记集对应用程序进行基准测试,而不仅仅是-O2-O3,而是使用其他可能的标记,您认为可以提高应用程序的性能我相信你会了解程序的功能以及它对不同输入的行为方式。

性能取决于应用程序的性质,因此我认为没有人可以给出令人信服的答案,哪些标志可以为您提供更好的性能。

查看GCC optimization flags并分析您的算法,以便找到合适的标志,然后决定使用哪些标志。

答案 1 :(得分:1)

-Os更可取。不仅存在RAM限制,而且CPU的缓存大小也受到限制,因此尽管使用较少的优化技术,-Os代码也可以更快地执行。