From: Doug Evans <dje@google.com>
To: Stan Shebs <stanshebs@earthlink.net>
Cc: gdb-patches <gdb-patches@sourceware.org>
Subject: Re: Benchmarking (was Re: [patch 2/2] Assert leftover cleanups in TRY_CATCH)
Date: Wed, 15 May 2013 17:00:00 -0000 [thread overview]
Message-ID: <CADPb22Sj5hH2nKrwn3DnqBNDFVgx=iJuw=xc3FGCBGUKU_-dow@mail.gmail.com> (raw)
In-Reply-To: <5192D33A.3060702@earthlink.net>
On Tue, May 14, 2013 at 5:13 PM, Stan Shebs <stanshebs@earthlink.net> wrote:
> On 5/7/13 7:00 AM, Jan Kratochvil wrote:
>
>>
>> target-side condition evaluation is a good idea:
>>
>> time gdb ./loop -ex 'b 4 if i==360000' -ex r -q -ex 'set confirm no' -ex q
>> real 1m11.586s
>>
>> gdbserver :1234 ./loop
>> time gdb ./loop -ex 'target remote localhost:1234' -ex 'b 4 if i==360000' -ex c -q -ex 'set confirm no' -ex q
>> real 0m21.862s
>>
>> "set breakpoint condition-evaluation target" really helps a lot.
>
> This reminds me of something that has been on my mind recently -
> detecting performance regression with the testsuite.
tis on my todo list.
Got a time machine?
IIRC Redhat had the seeds of something, but it needed more work.
> I added a test for fast tracepoints a while back (tspeed.exp) that also
> went to some trouble to get numbers for fast tracepoint performance,
> although it just reports them, they are not used to pass/fail.
>
> However, if target-side conditionals get worse due to some random
> change, or GDB startup time gets excessive, these are things that we
> know real users care about. On the other hand, this is hard to test
> automatically, and no wants to hack dejagnu that much. Maybe an excuse
> to dabble in a more-modern testing framework? Are there good options?
re: dejagnu hacking: depends on what's needed.
Sometimes regressions aren't really noticed unless one is debugging a
really large app.
A second slowdown might be attributable to many things, but in a
bigger app it could be minutes and now we're talking real money.
It's trivial enough to write a program to generate apps (of whatever
size and along whatever axis is useful) for the task at hand.
And it's trivial enough to come up with a set of benchmarks (I have an
incomplete set I use for my standard large app benchmark), and a
harness to run them.
IWBN if running the tests didn't take a lot of time but alas some
things only show up at scale.
Plus one needs to run them a sufficient number of times to make the data usable.
Running a benchmark with different sized tests and comparing the
relative times can help.
[One thing one could do is, e.g., run gdb under valgrind and use
instruction counts as a proxy for performance.
[One also needs to measure memory usage.]
It has the property of being deterministic, and with a set of
testcases for each benchmark could reveal problems.
One can't do just this because it doesn't measure, e.g., disk/network
latency which can be critical.
I'm sure one could write a tool to approximate the times.
Going this route is slower of course.]
Ultimately I'd expect this to be separate from "make check" (or at
least something one has to ask for explicitly).
But we *do* need something and the sooner the better.
next prev parent reply other threads:[~2013-05-15 17:00 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-01 16:57 [patch 2/2] Assert leftover cleanups in TRY_CATCH Jan Kratochvil
2013-05-02 17:02 ` Pedro Alves
2013-05-05 16:56 ` [commit] " Jan Kratochvil
2013-05-06 17:57 ` Tom Tromey
2013-05-06 18:18 ` Jan Kratochvil
2013-05-06 18:50 ` Tom Tromey
2013-05-07 1:47 ` Jan Kratochvil
2013-05-07 4:37 ` Doug Evans
2013-05-07 4:49 ` Doug Evans
2013-05-07 15:24 ` Jan Kratochvil
2013-05-15 0:13 ` Benchmarking (was Re: [patch 2/2] Assert leftover cleanups in TRY_CATCH) Stan Shebs
2013-05-15 17:00 ` Doug Evans [this message]
2013-05-22 20:51 ` Tom Tromey
2013-05-07 14:36 ` [patch 2/2] Assert leftover cleanups in TRY_CATCH Tom Tromey
2013-05-07 18:00 ` Jan Kratochvil
2013-05-07 6:23 ` Joel Brobecker
2013-05-07 14:20 ` [patch] " Jan Kratochvil
2013-05-14 20:39 ` [commit] " Jan Kratochvil
2013-05-07 14:40 ` Tom Tromey
2013-05-07 14:55 ` Jan Kratochvil
2013-05-07 15:26 ` Tom Tromey
2013-05-08 5:54 ` Joel Brobecker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CADPb22Sj5hH2nKrwn3DnqBNDFVgx=iJuw=xc3FGCBGUKU_-dow@mail.gmail.com' \
--to=dje@google.com \
--cc=gdb-patches@sourceware.org \
--cc=stanshebs@earthlink.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox