2017-01-03 2 views
1

Ich verwende gperftools, um eine C++ - Anwendung zu profilieren, die mit GCC 5.4.0 (mit -O3) kompiliert wurde.Was ist __nss_passwd_lookup() Anruf, den ich in Profilerausgabe über sehe?

Der Code ist äußerst optimiert, so dass ich eine Menge Zweige in den Ausgang, aber es ist kein Zweig __nss_passwd_lookup(), genannt sehen, die erhebliche Menge an Zeit in Anspruch nimmt:

enter image description here

Meine einzige Vermutung ist, dass es irgendwie mit der Speicherzuweisung zusammenhängt.

Betriebssystem: Ubuntu 16.04 x86_64, Kernel: 4.8.

+0

Sie könnten [* this *] (http://stackoverflow.com/a/378024/23771) versuchen. –

Antwort

0

Einige Assembly-Funktionen in glibc haben gelegentlich dieses Problem (z. B. memcpy oder memset). Erwägen Sie die Installation von libc6-dbg-Paket. Probieren Sie auch die Golfang-Version von pprof tool (gehen Sie auf github.com/google/pprof).

+0

Können Sie erklären, was "dieses Problem" ist? –

+0

Was ich meine ist, ich habe Asm-Funktionen von Glibc wie Strlen als __nss_ gemeldet gemeldet. Ich habe mir nie die Mühe gemacht, herauszufinden, warum. –

Verwandte Themen