从gprof输出中排除C ++标准库函数调用

时间:2019-01-04 11:17:03

标签: c++ profiling gprof

我正在某些C ++代码和此Makefile中使用C ++标准库:

CC=g++
CXXFLAGS=-Wall -Werror -ggdb3 -std=c++11 -pedantic $(OTHERFLAGS)
cpp_sort: cpp_sort.o
    g++ -o $@ $(CXXFLAGS) $^
clean:
rm -rf *.o cpp_sort *~

源代码:

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

void get_input(vector<int>& items, int size) {
    for (int i = 0; i < size; ++i) {
        int element;
        cin >> element;
        items.push_back(element);
    }
}

void cpp_sort(vector<int>& items) {
    sort(items.begin(), items.end());
}

void print_array(vector<int>& items) {
    for (auto& item : items) {
        cout << item << ' ';
    }
    cout << endl;
}


int main() {
    int size;
    cin >> size;
    vector<int> items;
    items.reserve(size);
    get_input(items, size);
    cpp_sort(items);
    print_array(items);
}

我这样叫make:

make OTHERFLAGS=-pg

运行程序(其中large.txt是一长串整数):

./cpp_sort <large.txt

并查看概要信息:

grof ./cpp_sort

这很好,它确实可以工作,但是我的函数调用被所有C ++标准库函数调用所遮盖。有没有办法排除标准库内部函数的调用?

0 个答案:

没有答案