Very slow loading of gperftools generated profiles by pprof

178 views
Skip to first unread message

Alexander Lindsay

unread,
Jan 30, 2022, 2:04:02 PM1/30/22
to gperftools
I *think* this is more of a pprof issue than a gperftools library issue, but I'm not entirely sure. With a pprof hash of d25a53d and gperftools tag version of 2.9.1, it takes forever to load profiles generated by an executable dynamically linked to some large libraries, e.g. I never get to the command prompt. Some system information is below

(base) lindad@pop-os:~/gperftools((HEAD detached at gperftools-2.9.1))$ uname -a
Linux pop-os 5.15.11-76051511-generic #202112220937~1640185481~21.10~b3a2c21 SMP Wed Dec 22 15:41:49 U x86_64 x86_64 x86_64 GNU/Linux

I've created a pprof issue here. My hypothesis for the slowness is due to addr2line. If I pass -symbolize=none to pprof, then the profile loads instantly and I get immediate access to the command prompt. But what makes me curious is that I've used gperftools and pprof on previous systems, profiling the same large libraries, and never experienced this slowness. I was hoping that members of this forum might have some ideas for what might have changed or some things I might try to make gperftools/pprof usable for me again. I just loved that perftools workflow and would prefer not to move to a different toolset.

Aliaksey Kandratsenka

unread,
Jan 30, 2022, 5:59:41 PM1/30/22
to Alexander Lindsay, gperftools
Hi. Let me note couple things:

a) "our" (aka perl) fork of pprof is very unmaintained. We strongly recommend you to move to golang version shipped at github.com/google/pprof

b) I don't know if the go version will be sufficiently faster for your use-case. At google I regularly use it for quite large-ish binaries and it isn't dead-slow. But if it is, consider having symbolization step first. I.e. convery un-symbolized proto (or even and most likely "legacy" format) to symbolized proto and save it back to file. Then all kinds of slicing and dicing will be faster.


--
You received this message because you are subscribed to the Google Groups "gperftools" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gperftools+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gperftools/1949e9fe-9d2b-47b5-8b0f-90b0b10783e4n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages