3

我知道这个问题的答案,像大多数人一样,是“视情况而定”,但我所寻找的与其说是答案,不如说是影响决定的不同事物的基本原理。

我的用例是我有一个运行嵌入式设备的 ARM Cortex A8 (TI AM335x)。我的选择是使用一些嵌入式 linux 来利用一些预构建的驱动程序和其他东西来加快开发速度,但我对这个项目最大的担忧是设备的速度。内存和磁盘空间不是什么大问题。我认为这是一个安全的假设,即直接针对 mpu 进行编程而不使用完整的操作系统肯定会使应用程序更快,但是获得 1% 或 2% 的加速并不值得额外的开发时间。

我想最大的减速将来自内核上下文切换和内存映射,但我没有正确评估或衡量这些减速程度的知识。任何指导将不胜感激!

4

1 回答 1

4

你的担心是合理的。使用裸机可以/将提高性能,但可能只会提高几个百分点......“这取决于”。

为在 linux 中具有全功能驱动程序但没有全功能驱动程序裸机的东西使用裸机,将花费您的开发和可能的维护时间,获得性能提升是否值得?

您还必须问自己,我是否使用了正确的平台,和/或我是否使用了正确的方法来处理您想要在您认为或知道太慢的处理器上执行的任何操作。你确定你知道瓶颈在哪里吗?你确定你的优化是在正确的地方吗?

你没有提供任何能让我们有直觉的信息,所以你必须继续你的直觉来决定走哪条路。不同的嵌入式平台(优缺点)、裸机或操作系统。Linux或rtos或其他。一种编程语言与另一种,一种外围设备与另一种,等等。在您尝试这些路径中的每一个之前,您实际上不会知道,但这可能而且很可能是成本和时间令人望而却步......

至于操作系统与裸机的通用标题问题,答案是“取决于”。差异可以很大,从几乎相同到裸机上的数百到数千倍。但是对于任何特定的应用程序/任务/算法......这取决于。

于 2013-11-04T19:59:45.943 回答