描述:
我正在分析我的应用程序以提高整体性能,在我发现的不同瓶颈中,消耗性能的主要区域之一似乎来自 _wordcopy_fwd_dest_aligned
指令/函数。
下面是问题的简短描述 -
- 函数获取一个缓冲流 - 包含长度和长度值格式的字符流。
- 阅读 len(一些用于检查机器对齐等的代码)。
- 读取字符数组并赋值给字符串。
PusedoCode
pusedo 代码如下所示
read_buf(max_len)
v.assign((char*)pdata,max_len)
现在,当从量化报告中检查 CPU 周期时,我看到 _wordcopy_fwd_dest_aligned
中的利用率很高。也来自报告,例如 - Improve CPU Cycles for performance ,我看到这个想法是通过使用任何替代方法来减少这种情况。
问题
- 上面的代码是否有一个简单的替代方案,它可以减少/消除
_wordcopy_fwd_dest_aligned
的使用,从而提高性能(即使以内存为代价)。 - 如果上述方法不起作用,是否有针对上述代码的建议变通区域?但最终的 o/p 本身需要在字符串中。
附言:
A。由于代码需要在分布式环境中工作,需要处理单词对齐等问题,所以对问题列表中的选项 (2) 有点犹豫。
b.我们正在使用 STLport 库,所以这是否需要任何调整/这会导致问题吗? std::string v.assign(...)
的简单代码没有显示 _wordcopy_fwd_dest_aligned
。
最佳答案
这是优化的复制例程。为了获得更高的性能,您可能必须消除拷贝,或者牺牲与某些处理器型号的兼容性。
关于c++ - 在将 char 数组复制到字符串期间节省 CPU 周期(提高性能),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10492546/