gpt4 book ai didi

c - 用于实时 Linux 应用程序编程的 uClibc 与 glibc

转载 作者:太空狗 更新时间:2023-10-29 12:05:31 30 4
gpt4 key购买 nike

我正在编写一个在 Linux(内核 3.0)上运行的用户空间音频应用程序,它需要实时行为。我应该选择 glibc 还是 uClibC? uClibC 和 glibc 在实时行为方面如何比较?

(编辑:我的是一个带有 nand 闪存的嵌入式系统。它使用带有 glibc 的外部 gcc 工具链的 buildroot。如果需要,我也可以使用带有 uClibc 的 buildroot 内部工具链)

最佳答案

实际上,我认为没有人可以肯定地说出一种方式。原因是您的代码使用 C 库的方式可能在一个变体中比另一个变体好得多/差得多。

唯一合理的方法是用 glibc 运行代码,然后在相同条件下用 uclibc。比较完成这项工作所需的时间。你的情况哪个更好? - 如果这是进入某种嵌入式系统,请确保你测量的是你希望它运行的处理器,而不是一些具有完全不同指令集、不同缓存大小、不同内存速度等的 PC 处理器,等等.

您说您使用了很多 malloc - 也许如果您认为这是速度的限制因素,您应该考虑一种不太使用 malloc 的方法。特别是,在您的“热路径”中调用 malloc 不是一个好主意,除非您绝对必须这样做。

另请注意,Linux 不是实时操作系统。你只能期待 Linux 的半实时行为,如果你的应用程序真的依赖于能够在一定时间内处理它的音频,并且在特定条件下它可以“​​不运行”多长时间等,你将需要向内核添加扩展——我不太熟悉哪些扩展适用于哪些内核版本、工作负载类型等。

关于c - 用于实时 Linux 应用程序编程的 uClibc 与 glibc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14464344/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com