Ненужные вызовы strerror_l - PullRequest
0 голосов
/ 12 марта 2019
#include <iostream>
int main(){
    for(int i = 0; i < 100000000; i++){
        std::string from = "hello";
    }
    return 0;
}

Этот код производит некоторые вызовы strerror_l внутри конструктора std :: string.Это пример кода, внутри реального проекта он вызывается гораздо чаще (профилируется с помощью Google pprof).Что это такое и как я могу избежать этих вызовов?

Тестовая среда:

debian 6.0.1, g++ 4.4.5 and g++ 4.9.2 - нет вызовов strerror_l

debian 8.6, g++ 4.9.2 - несколько вызовов

Способы воспроизведения (требуется gpr pprof):

Сборка с профилировщиком: g++ question.cpp -lprofiler

Получение данных профиля: CPUPROFILE=/tmp/question.out /tmp/a.out

Построение графика вызовов: google-pprof --pdf /tmp/a.out question.out > output.pdf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...