我有一个在Linux上运行的C++应用程序,我正在优化它.如何确定代码的哪些区域运行缓慢?
可能重复:
你最喜欢的分析工具是什么(适用于C++)
是否有任何好的工具来分析混合了C和C++的源代码.有什么优点和缺点,你使用过哪些,并建议使用.请不要给我一个谷歌工具列表.我也可以这样做,我想要的是利用使用这些工具的人的个人经验并了解他们的利弊.
提前致谢.
我被告知我的库比它应该慢,大约30+次解析特定文件(文本文件,大小326 kb)太慢.用户建议可能是我正在使用std::ifstream(大概是代替FILE).
我宁愿不盲目改写,所以我想我先在这里查看,因为我的猜测是其他地方的瓶颈.我读逐个字符,所以我使用的唯一的功能是get(),peek()和tellg()/seekg().
更新:
我描述了,并且输出令人困惑 - gprof似乎并没有想到花了这么长时间.我重写了程序,首先将整个文件读入缓冲区,然后加速大约100倍.我认为问题可能tellg()/seekg()是花了很长时间,但gprof可能由于某种原因无法看到.在任何情况下,即使对于此大小,ifstream也不会缓冲整个文件.