From: Doug G. <dou...@gm...> - 2023-08-27 13:37:15
|
<html><head><meta http-equiv="content-type" content="text/html; charset=us-ascii"></head><body dir="auto"><div dir="ltr"><br><div dir="ltr">Christian,</div><div dir="ltr">(Resend - apologies for the previous direct send to you.)<br><div>Compiled LS with "-O3 -pg -g" flags. Discovered gprof does not work with c++ (c, fortran and asm only) wasted an afternoon, should have read the first line of the man page more carefully (doh).</div><div>Oprofile needs to be compiled from source for my Os but did find Sysprof available for quick install. I have attached a capture output summary that includes the failure mode I described previously. The summary zeros in on the heaviest loads.</div><div><br></div><div>I'm hoping for some advice. I will look at the code myself sometime this week.<br></div><div>Thanks again for your help,</div><div>Doug</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, 26 Aug 2023 at 16:55, Christian Schoenebeck <<a href="mailto:sch...@li...">sch...@li...</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Friday, August 25, 2023 3:14:13 PM CEST Doug Gray wrote:<br> > Christian,<br> > Reading and testing the example given here I can see the process.<br> > <a href="https://www.thegeekstuff.com/2012/08/gprof-tutorial/" rel="noreferrer" target="_blank">https://www.thegeekstuff.com/2012/08/gprof-tutorial/</a><br> > <br> > From your directions to Ebab in 2020 I surmise the command line would be:<br> > <br> > CXXFLAGS="-O3 -pg -j4" ./configure && make<br> <br> You should also add -g to add debug information.<br> <br> > and execute:<br> > <br> > ./src/linuxsampler<br> > <br> > I presume -O3 are optimisations, <br> <br> Correct<br> <br> > -pg is from the current man page for gprof, <br> <br> Yeah, but that's only for gprof. It injects extra profiling code directly into <br> the binary. Other profilers like oprofile AFAICR don't need or use that.<br> <br> > and -j4 to compile using 4 cores. Is this correct?<br> <br> Correct, and not important in this case. It just speeds up the compilation.<br> <br> > (I understand not to strip the executable.)<br> <br> Correct.<br> <br> It's been a long time that I used gprof or oprofile, so not sure whether the <br> situation has improved on gprof's end, but back then (years ago) gprof had the <br> huge disadvantage that it was only capable to profile on application binary <br> level only, whereas oprofile profiled from application binary level over <br> individual system libraries, down to lowest kernel level. So oprofile <br> delivered a much more complete and accurate picture than gprof.<br> <br> For instance in this case of this SFZ engine issue, it could also be possible <br> that the bottle neck is somewhere in libsndfile or any library that libsndfile <br> calls in turn. gprof would not have revealed performance issues in libsndfile <br> or any other system lib, as it simply did not count those in.<br> <br> The gig engine does not use any third-party lib during playback of samples. <br> The SFZ engine however supports a large number of all kinds of audio files. <br> That's why the SFZ engine calls libsndfile (also during real-time playback of <br> samples) to delegate support for all those file formats. And I'm not sure if <br> libsndfile and all the libs that libsndfile calls are designed to be real-time <br> safe.<br> <br> /Christian<br> <br> <br> <br> <br> _______________________________________________<br> Linuxsampler-devel mailing list<br> <a href="mailto:Lin...@li..." target="_blank">Lin...@li...</a><br> <a href="https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel" rel="noreferrer" target="_blank">https://lists.sourceforge.net/lists/listinfo/linuxsampler-devel</a><br> </blockquote></div> </div></body></html> |