如何判断C ++应用程序存在磁盘I / O瓶颈?

时间:2018-12-12 03:36:36

标签: c++ indexing full-text-search disk ssd

我正在从事“搜索”项目。主要思想是如何建立索引以尽可能快地响应搜索请求。输入的是查询,例如“ termi termj”,输出是termi和termj都出现的文档。

索引文件如下所示:(每行称为一个后列表,它是无符号int的排序数组,可以用良好的压缩率进行压缩) dispatch.yaml

3个主要的恢复时间的步骤是

  1. 在文件中查找termi和termj的帖子列表(读取随机磁盘)
  2. 解码帖子列表(cpu)
  3. 计算2个帖子列表(cpu)的交集

我的问题是,我怎么知道应用程序效率更高,它具有磁盘I / O瓶颈?我如何衡量我的计算机是否100%使用了他的磁盘? linux上有什么工具可以帮助您吗?是否有任何工具可以像google cpu profiler一样可以完美地测量磁盘I / O?

我的开发环境是Ubuntu 14.04。


term1:doc1, doc5, doc8, doc10
term2:doc10, doc51, doc111, doc10000
...
termN:doc2, doc4, doc10

任何建议将不胜感激!非常感谢你!

0 个答案:

没有答案