0

描述:

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

以下是问题的简短描述 -

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

PusedoCode
pusdo 代码如下所示

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

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

问题

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

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

4

1 回答 1

4

那是优化的复制程序。为了获得更高的性能,您可能必须消除副本,或者牺牲与某些处理器型号的兼容性。

于 2012-05-08T04:32:02.763 回答