我目前正在开发一个嵌入式设备应用程序(在 C 中)。我应该使用什么优化标志来编译该应用程序,记住它只有 96 MB 的 RAM。
另外,请注意,在这个应用程序中,我基本上是对 JPEG 图像进行预处理。那么我应该使用哪个优化标志?
此外,剥离此应用程序是否会对效率和速度产生任何影响?
我运行这个应用程序的操作系统是 Linux 2.6.37。
我目前正在开发一个嵌入式设备应用程序(在 C 中)。我应该使用什么优化标志来编译该应用程序,记住它只有 96 MB 的 RAM。
另外,请注意,在这个应用程序中,我基本上是对 JPEG 图像进行预处理。那么我应该使用哪个优化标志?
此外,剥离此应用程序是否会对效率和速度产生任何影响?
我运行这个应用程序的操作系统是 Linux 2.6.37。
通常优化会增加二进制大小。除了这对速度的影响之外,根据您拥有的数据集,这根本无法预测。唯一的方法是使用不同的标志集对应用程序进行基准测试,不仅仅是-O2
或-O3
使用其他可能的标志,您认为这些标志可能会提高应用程序的性能,因为我相信您会了解程序的功能以及它的行为方式对于不同的输入。
性能取决于应用程序的性质,因此我认为没有人可以给您一个令人信服的答案,说明哪些标志可以为您提供更好的性能。
查看GCC 优化标志并分析您的算法以找到合适的标志,然后决定使用哪些标志。
-Os
更可取。不仅有 RAM 限制,而且 CPU 的缓存大小也受到限制,因此-Os
尽管使用了较少的优化技术,但代码可以更快地执行。