0
c89
gcc (GCC) 4.7.2

你好,

我正在查看一些字符串函数,因为我需要在一个句子中搜索不同的单词。

我只是想知道 c 标准功能是否已完全优化。

例如这些函数: memchr, strstr, strspn, strchr, 等

就高性能而言,这是我所需要的。有更好的吗?

问候,

4

3 回答 3

3

您几乎肯定会发现标准库函数已经尽可能地进行了优化,并且它们可能会超过您用 C 编写的任何代码。

请注意,这是针对一般情况的。如果您可以对函数施加一些限制,或者您对数据本身拥有一些额外的信息,您可能能够让您的代码运行得更快,因为您拥有该限制或信息的优势.

例如,我编写了 C 代码,malloc因为malloc我知道应用程序永远不会要求超过 256 个字节,所以我只为每个请求提供 256 个字节。是的,这是对内存的浪费,但它允许在一般情况下提高速度。

但是,对于一般情况,你最好坚持使用提供的东西。

于 2012-11-15T07:59:00.650 回答
3

全面优化?优化什么?

是的,stdlib 的 C 函数编写得非常高效,并且经过多年的测试/调试,所以你绝对不应该担心其中的大多数。

于 2012-11-15T07:59:41.577 回答
1

假设您总是将数据对齐到 16 字节边界并每次分配大约 16 字节左右,那么加速大多数 stdlib 例程绝对是可能的。

但假设例如。strlen 事先不知道,或者只读取一个字节太多会导致分段错误,我不会打扰。

于 2012-11-15T14:29:35.700 回答