首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实时Linux应用程序编程中uClibc与glibc的比较

实时Linux应用程序编程中uClibc与glibc的比较
EN

Stack Overflow用户
提问于 2013-01-23 01:20:09
回答 3查看 6.9K关注 0票数 3

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

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

EN

回答 3

Stack Overflow用户

发布于 2013-01-23 04:40:30

实事求是地说,我不认为任何人都能以这样或那样的方式确定。原因是,您的代码很可能以一种方式使用C库,这种方式在一种变体中比在另一种变体中好/差得多。

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

特别是,除非万不得已,否则在“热路径”中调用malloc不是一个好主意。

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

票数 3
EN

Stack Overflow用户

发布于 2013-01-23 01:42:42

我会写你的应用程序可移植,这样你就可以推迟决定构建时间。为了给你一个更好的答案,我们需要知道你想要使用哪些实时功能。

票数 0
EN

Stack Overflow用户

发布于 2013-01-23 05:49:06

使用系统上安装的C库。任何给定的Linux发行版通常要么使用glibc (对于大多数发行版,包括桌面和服务器系统),要么使用uClibc (在一些嵌入式发行版中)。两者的混合和匹配相当混乱,并且会使构建、调试和分发您的应用程序变得不合理地复杂。

这两个库的性能特征通常非常相似,不太可能对您的应用程序产生任何重大影响。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14464344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档