That doesn't sound normal to me, but how exactly are you doing the walking? What operating system are you using, is it 32- or 64-bit, which library version, how did you build it, are you using external (ptrace) or in-process (UNW_LOCAL_ONLY) walking, what exact API are you calling to walk, what language and compiler did you use for your program, etc.?
Here are some reference numbers from another profiling tool (igprof) using libunwind a few years back: https://lists.nongnu.org/archive/html/libunwind-devel/2011-03/msg00042.html https://lists.nongnu.org/archive/html/libunwind-devel/2011-03/msg00064.html https://lists.nongnu.org/archive/html/libunwind-devel/2011-03/msg00079.html The time in clock cycles to walk on average 30-ish stack frames, for very frequent walks (3M/sec) was in the ballpark of 2500, and 70000 for less frequent setitimer interrupts at 200/sec (~5 ms interrupt). On Sat, Nov 22, 2014 at 10:05 AM, Chenggang <[email protected]> wrote: > Hi: > I am a user of libunwind. I am developing a profiling system, > "Bianque". > I use libunwind to unwind the stack on the target machine. But the > time cost is too expensive. > While the layers of call chain is 130 and the stack size is 1MB, we > need 3.8 milliseconds to unwind it. > My CPU is Xeon(R) CPU E5-2430 0 @ 2.20GHz. > Is this cost normal? > > Regards > Chenggang > > > > > _______________________________________________ > Libunwind-devel mailing list > [email protected] > https://lists.nongnu.org/mailman/listinfo/libunwind-devel > >
_______________________________________________ Libunwind-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/libunwind-devel
