zoukankan      html  css  js  c++  java
  • 软工第一次个人作业博客(二)

    Performance analyses on Linux

    command lines :


    g++ -std=c++11 -Wall -pg test_gprof.cpp -o test_gprof
    ./test_gprof
    gprof test_gprof gmon.out >analysis.txt

    得到的分析结果,存在了analysis.txt文件中

    经观察,可以看到有用的信息:

                 Call graph (explanation follows)


    granularity: each sample hit covers 2 byte(s) for 0.06% of 16.82 seconds

    index % time   self children   called     name
                                                    <spontaneous>
    [1]     99.0   0.00   16.66                 main [1]
                  0.00   16.42       1/1           listDir(char*) [3]
                  0.14   0.06       1/1           Getten_phrase() [40]
                  0.00   0.04       1/1           Getten_word() [85]
                  0.00   0.00     20/20         std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, my_word, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, my_word> > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&) [166]
    -----------------------------------------------
                  1.76   14.66   1323/1323       listDir(char*) [3]
    [2]     97.6   1.76   14.66   1323         NumOfCharsLinesInFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) [2]
                  0.34   14.32 16641077/16641077     EnterMap(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) [4]
    -----------------------------------------------
                                    125             listDir(char*) [3]
                  0.00   16.42       1/1           main [1]
    [3]     97.6   0.00   16.42       1+125     listDir(char*) [3]
                  1.76   14.66   1323/1323       NumOfCharsLinesInFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) [2]
                                    125             listDir(char*) [3]
    -----------------------------------------------
                  0.34   14.32 16641077/16641077     NumOfCharsLinesInFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) [2]
    [4]     87.2   0.34   14.32 16641077         EnterMap(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) [4]

    这两条表明了 NumOfCharsLinesInFile()EnterMap函数占据了主要时间,所以因该主要优化这两个函数,可是Entermap这个函数里面主要是用的unordered_map这个自带的关联容器,所以优化空间不大,所以主要在NumOfCharsLinesInFile这个函数里面优化。

  • 相关阅读:
    typedef
    心目中的编程高手
    截取包含多字节字符的字符串
    Start deltacat Audio Mix Filter
    关于编译环境和DLL的惨痛教训
    【转】自定义Extjs中Grid单元格的显示格式
    Ajax 按需 提交指定字段 以 Json Model 形式 post 到 action
    [转]Log4Net 非常完整的配置。
    【转】Ext.data.Store
    this.getColumnModel is not a function Extjs 如何解决呢? Extjs 导出 到Excel 解决方案问题
  • 原文地址:https://www.cnblogs.com/rui-zhao/p/8666533.html
Copyright © 2011-2022 走看看