gpt4 book ai didi

c - snprintf 和 strncat 的执行速度如何比较?

转载 作者:行者123 更新时间:2023-12-02 06:22:17 27 4
gpt4 key购买 nike

我有一个程序可以在缓冲区中连接一些字符串。

我之前用过strncpy。在网上查看了一些使用 snprintf 而不是 strncat 的建议后,我切换到 snprintf。但是,我注意到这部分程序(字符串连接)的执行比之前有所延迟。这可能吗,snprintf 可以减慢程序的执行速度吗?如果不是,那么我会在我的计划中寻找一些其他因素。

if(iOffset<MAX_BUFF_SIZE && iOffset>0)
{
.......
iOffset += snprintf(cBuff+iOffset, sizeof(cBuff)-iOffset, "%s", "String1");
......
}

为了将字符串附加到 cBuff,我重复上述代码片段 12 次。

编辑:每 1 秒重复 12 次。

最佳答案

我想到了一些建议:

  • 不要过早优化你的程序
  • 当您准备好进行优化时,使用分析器等工具来发现真正的减速点

如果您不熟悉性能分析,或者真的很想知道计时细节,您可以随时在您的代码中包含计时器。请参阅有关 gettimeofday() 或 clock() 的引用资料以及有关这些代码的适当注意事项。本质上,您可以获得执行前的时间、执行后的时间并进行比较。注释掉您的代码行并放入旧代码并计时。

综上所述……这就是分析器为您所做的工作的一部分。找出“为什么”某些东西变慢有时很复杂,因为可能还有您不知道的其他考虑因素(即在硬件级别)。

与程序的总执行时间相比,一个函数执行 12 次可能微不足道。

关于c - snprintf 和 strncat 的执行速度如何比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7154971/

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