2017-01-03 3 views
1

Я использую gperftools, чтобы профилировать приложение C++, которое было скомпилировано с использованием GCC 5.4.0 (с -O3).Что такое вызов __nss_passwd_lookup(), о котором я вижу в профилировщике?

Код оптимизированный, так что я не вижу много ветвей на выходе, но есть ветка называется __nss_passwd_lookup(), которая занимает значительное количество времени:

enter image description here

Мое единственное предположение, что это связано с распределением памяти.

Операционная система: Ubuntu 16.04 x86_64, Kernel: 4.8.

+0

Вы можете попробовать [* this *] (http://stackoverflow.com/a/378024/23771). –

ответ

0

Некоторые функции сборки в glibc иногда имеют эту проблему (например, memcpy или memset). Рассмотрим установку пакета libc6-dbg. Также попробуйте golang версию pprof tool (go get github.com/google/pprof).

+0

Можете ли вы уточнить, что такое «эта проблема»? –

+0

Я имею в виду, что я видел функции asm из glibc, такие как strlen, которые были неправильно указаны как __nss_ . Я никогда не думал, почему. –

Смежные вопросы