如何在 C++ 应用程序中模拟高存储活动
Posted
技术标签:
【中文标题】如何在 C++ 应用程序中模拟高存储活动【英文标题】:How to simulate high storage activity in a C++ application 【发布时间】:2014-07-30 14:39:37 【问题描述】:有哪些方法可以帮助识别大型多线程 c++ 应用程序中可能因访问存储 I/O 而受阻的问题?
我可以分析应用程序以查找特定运行的特定减速,但我似乎无法模拟缓慢的 I/O 来帮助识别特定的问题区域。
当调整任何主要系统组件(CPU、内存和 I/O)时,性能可能会有所不同,我认为查看这组依赖组件不同的运行差异会很有用。
我很熟悉 VTune 等运行工具,如果此分析器内部有某个地方可以执行此操作,我想知道,但我愿意使用其他工具。
【问题讨论】:
如果你的 I/O 问题被分离到一个组件中,你可以用延迟来装饰它 确实如此。我可以这样做,尽管它可能很乏味。存储空间有很多不同的方式。 我会编写一个小型应用程序,该应用程序使用可控的吞吐量参数读写存储,并与您的应用程序并行运行,从而有效地为系统施加所需的压力。这样您就可以检查不同的场景和工作负载 永远不要模拟何时可以实际测量。去储藏室,找到你能找到的最旧的硬盘,然后读写。 VTurne ect 非常擅长识别您想要加速的代码中的热点,但它们需要调试代码并且自己占用资源,因此它们在测量实际性能方面做得很差。 【参考方案1】:您可以创建并挂载一个 FUSE 文件系统,它只是延迟包装常规文件系统调用:http://www.cs.nmsu.edu/~pfeiffer/fuse-tutorial/
【讨论】:
以上是关于如何在 C++ 应用程序中模拟高存储活动的主要内容,如果未能解决你的问题,请参考以下文章
我如何在一些全局击键上使用 Python 或 C++ 将一些文本粘贴到 linux 中的当前活动应用程序
华为OD机试模拟题用 C++ 实现 - 网上商城优惠活动(2023.Q1)