On Fri, Mar 22, 2013 at 10:46:12AM -0700, Ryan Moore wrote:
> On Friday, March 22, 2013 9:34:37 AM UTC-7, Tim.Bunce wrote:
>
> On Thu, Mar 21, 2013 at 03:58:13PM -0700, Ryan Moore wrote:
> > Is there any way to combine NYTProf output from multiple source files to give a useful /
> non-garbage
> > output?
> > The docs indicate that you might be successful running nytprofmerge with two runs of the same
> source,
> > but trying to combine multiple sources will probably not do what you expect. I'm trying to
> generate a
> > combined profile for our tests running under prove (220 files in t/ and counting),
>
> Why, specifically?
>
> Concentrating effort on improving the test setup itself. On any individual test a 1-second improvement
> might not be the best thing to focus on (or biggest timesink), but if that same one-second improvement
> is propagated to all 220 tests that's 3+ minutes of improvement for a full test run.
I see your point. I'd guess that improving a random few, focusing on
common code paths, would have a similar effect.
I presume you're using a modern version of prove, which has many good
features for avoiding rerunning all tests.
See --state slow/fast etc in
https://metacpan.org/module/OVID/Test-Harness-3.26/bin/prove
Perhaps that would be of some help.
> What's the problem with the current output from nytprofmerge?
>
> It seems to be only reporting a fraction of the time used overall, i.e. for a 30 minute test run it
> shows a function with 4 seconds of total usage as the top offender, and doesn't seem to include all of
> the t/* files in the output.
>
> In theory you might be able to hack on nytprofmerge to get something
> more useful out.
>
> I'm unfortunately a Perl n00b, but I'll take a look to see if there's anything obvious in nytprofmerge
> that applies to my use case. I'll also see if I can create a repro case with less than the
> several-hundred sources involved in my current failures.
In my (very quick) testing it seems to work ok.
Small (ideally very small) test cases would be a big help.
Tim.