在将 char 数组复制到字符串期间节省 CPU 周期(提高性能)
Save CPU cycles (improve performance) during copy of char array to string
描述:
我正在分析我的应用程序以提高整体性能,在我发现的不同瓶颈中,消耗性能的主要领域之一似乎来自_wordcopy_fwd_dest_aligned
指令/功能。
以下是问题的简短描述 -
- 函数获取一个缓冲流 - 包含长度-值格式的长度和字符流。
- 读取镜头(一些代码来检查机器对齐等(。
- 读取字符数组并将其分配给字符串。
普塞索代码
pusedo 代码如下所示
read_buf(max_len)
v.assign((char*)pdata,max_len)
现在,当从量化报告中检查 CPU 周期时,我看到_wordcopy_fwd_dest_aligned
利用率很高。同样从诸如 - 提高 CPU 周期以提高性能之类的报告中,我看到这个想法是通过使用任何替代方法来减少这种情况。
问题
- 上面的代码有没有一个简单的替代方案,它可以减少/消除
_wordcopy_fwd_dest_aligned
的使用,从而为我带来性能(即使以内存为代价(。 - 如果上述方法不起作用,上述代码的任何建议的解决方法?但是最终的 o/p 需要在字符串本身中。
附注:
一个。由于代码需要在分布式环境中工作,因此需要处理单词对齐等,因此对问题列表中的选项(2(有点犹豫。
b.我们正在使用 stlport 库,所以这是否需要任何调整/这会导致问题吗?带有std::string v.assign(...)
的简单代码没有出现在_wordcopy_fwd_dest_aligned
.
这是优化的复制例程。 为了获得更高的性能,您可能不得不消除副本,否则会牺牲与某些处理器型号的兼容性。
相关文章:
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 在模拟器中使用并集来模拟CPU寄存器有多合适
- 编写一个函数以使用 n 百分比的 CPU 使用率
- 如何禁用 CPU 的无序执行
- CPU 瓶颈;处理具有许多非静态对象的 3D 场景渲染的简单方法
- 分别测量每个线程上花费的 CPU 时间(C++)
- 什么时候最好在子进程中使用 CPU 或 I/O 密集型代码 [ C++ ]
- 在程序运行时监视 VxWorks 中的任务 CPU 利用率
- Pisano 周期生成器在 3 位周期内行为不正确
- 如何获得进程在windows内核模式下使用的CPU时钟周期
- 测量C 代码的CPU周期
- 一段时间后,C++应用程序占用100%的cpu周期
- 为什么我的程序在_fini中花费了85%的CPU周期
- 在将 char 数组复制到字符串期间节省 CPU 周期(提高性能)
- 如何计算C++代码段的 CPU 周期成本
- 如何使用固定的线程循环周期最小化CPU消耗
- 类型转换是否消耗额外的CPU周期?
- 如何在Visual Studio 2008中确定c++代码的复杂性(如CPU周期)
- 在现代x86_64 CPU上进行AVX/SSE幂运算需要多少时钟周期?
- 标准C++11是否保证high_resolution_clock测量实时性(非CPU周期)