c89
gcc (GCC) 4.7.2
你好,
我正在查看一些字符串函数,因为我需要在一个句子中搜索不同的单词。
我只是想知道 c 标准功能是否已完全优化。
例如这些函数:
memchr
, strstr
, strspn
, strchr
, 等
就高性能而言,这是我所需要的。有更好的吗?
问候,
c89
gcc (GCC) 4.7.2
你好,
我正在查看一些字符串函数,因为我需要在一个句子中搜索不同的单词。
我只是想知道 c 标准功能是否已完全优化。
例如这些函数:
memchr
, strstr
, strspn
, strchr
, 等
就高性能而言,这是我所需要的。有更好的吗?
问候,
您几乎肯定会发现标准库函数已经尽可能地进行了优化,并且它们可能会超过您用 C 编写的任何代码。
请注意,这是针对一般情况的。如果您可以对函数施加一些限制,或者您对数据本身拥有一些额外的信息,您可能能够让您的代码运行得更快,因为您拥有该限制或信息的优势.
例如,我编写了 C 代码,malloc
因为malloc
我知道应用程序永远不会要求超过 256 个字节,所以我只为每个请求提供 256 个字节。是的,这是对内存的浪费,但它允许在一般情况下提高速度。
但是,对于一般情况,你最好坚持使用提供的东西。
全面优化?优化什么?
是的,stdlib 的 C 函数编写得非常高效,并且经过多年的测试/调试,所以你绝对不应该担心其中的大多数。
假设您总是将数据对齐到 16 字节边界并每次分配大约 16 字节左右,那么加速大多数 stdlib 例程绝对是可能的。
但假设例如。strlen 事先不知道,或者只读取一个字节太多会导致分段错误,我不会打扰。