1

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

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

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

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

4

2 回答 2

2

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

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

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

于 2012-10-08T09:26:06.537 回答
1

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

于 2012-10-08T09:15:48.097 回答