在将 char 数组复制到字符串期间节省 CPU 周期(提高性能)

Save CPU cycles (improve performance) during copy of char array to string

本文关键字:周期 CPU 高性能 节省 数组 char 复制 字符串 在将      更新时间:2023-10-16

描述:

正在分析我的应用程序以提高整体性能,在我发现的不同瓶颈中,消耗性能的主要领域之一似乎来自_wordcopy_fwd_dest_aligned指令/功能。

以下是问题的简短描述 -

  • 函数获取一个缓冲流 - 包含长度-值格式的长度和字符流。
  • 读取镜头(一些代码来检查机器对齐等(。
  • 读取字符数组并将其分配给字符串。

普塞索代码
pusedo 代码如下所示

read_buf(max_len)  
v.assign((char*)pdata,max_len)  

现在,当从量化报告中检查 CPU 周期时,我看到_wordcopy_fwd_dest_aligned利用率很高。同样从诸如 - 提高 CPU 周期以提高性能之类的报告中,我看到这个想法是通过使用任何替代方法来减少这种情况。

问题

  1. 上面的代码有没有一个简单的替代方案,它可以减少/消除_wordcopy_fwd_dest_aligned的使用,从而为我带来性能(即使以内存为代价(。
  2. 如果上述方法不起作用,上述代码的任何建议的解决方法?但是最终的 o/p 需要在字符串本身中。

附注:
一个。由于代码需要在分布式环境中工作,因此需要处理单词对齐等,因此对问题列表中的选项(2(有点犹豫。
b.我们正在使用 stlport 库,所以这是否需要任何调整/这会导致问题吗?带有std::string v.assign(...)的简单代码没有出现在_wordcopy_fwd_dest_aligned.

这是优化的复制例程。 为了获得更高的性能,您可能不得不消除副本,否则会牺牲与某些处理器型号的兼容性。