Was ist _dl_lookup_symbol_x ? - C++ - Profiling
Bin ich mit valgrind/callgrind zu Profil meine server-code für einige Optimierung. Die beiden am häufigsten verwendeten fordert, dass callgrind ist die Berichterstattung für mich (mit kcachegrind zu sehen) sind _dl_lookup_symbol_x und do_lookup_x. Allerdings habe ich keine Ahnung, was diese sind und kann nicht scheinen zu finden, keine Dokumentation über Sie.
Könnte jemand mir bitte sagen, wo diese beiden Funktionen eingesetzt werden und was Sie tun?
- Es scheint mir, dass dies passiert, wenn die main() ist extrem kurz. Sobald ich einige aktuelle arbeiten aus der main(), wird es schnell Zwergen die Aufrufe dl_lookup_x, etc.
Du musst angemeldet sein, um einen Kommentar abzugeben.
_dl_lookup_symbol_x
ist eine interne Funktion in der glibc-C-Laufzeit-Bibliothek. Wenn Sie durchsuchen die Quelle für glibc, finden Sie diese Bemerkung über die_dl_lookup_symbol_x
definition:do_lookup_x
ist lediglich eine Hilfsfunktion aufgerufen, die innerhalb der_dl_lookup_symbol_x
Funktion.Ich bin kein Experte auf die Interna der glibc, sondern von dem, was ich sammeln können,
_dl_lookup_symbol_x
sieht für ein symbol (eine Funktion) in shared libraries geladen, die von Ihrem Programm.Ich weiß nicht, warum diese Funktionen so oft aufgerufen, in Ihrem profiling, aber zumindest jetzt haben Sie einige Ahnung haben, was Sie tun. Ihre profiling soll Ihnen sagen, was Funktionen sind verantwortlich für den Aufruf
_dl_lookup_symbol_x
so oft.Beachten Sie, dass es wäre normal, dass
_dl_lookup_symbol_x
zu viele Male aufgerufen werden, wenn das Programm das erste mal startet, da die Laufzeit zahlen, die Adressen der shared-library-Funktionen mit einem bestimmten Namen. Wenn Sie die Profilerstellung für eine sehr kurzlebige Programm, dann ist es nicht verwunderlich, dass Sie sehen würden, dass die meisten der Zeit, die verbracht wird in der internen "housekeeping" - Funktionen, anstatt Ihren eigenen code.