Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
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.


  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