Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pierre-Marie de Rodat <derodat@adacore.com>
To: Doug Evans <xdje42@gmail.com>
Cc: Kevin Buettner <kevinb@redhat.com>, gdb-patches@sourceware.org
Subject: Re: [PATCH] Add proper handling for non-local references in nested functions
Date: Mon, 17 Aug 2015 13:27:00 -0000	[thread overview]
Message-ID: <55D1E13E.2070207@adacore.com> (raw)
In-Reply-To: <m34mk12huv.fsf@sspiff.org>

On 08/15/2015 08:20 AM, Doug Evans wrote:
> If you want to see if you can see the 4% regression too,
> I've updated the wiki with some instructions to get one
> using the perf testsuite (hopefully) quickly:
>
> https://sourceware.org/gdb/wiki/GDBPerfTestsuite

Thank you very much for this! :-)

> Before (trunk):
>
> bash$ sh runperf.sh
> bash$ cat perftest.sum
> gmonster1:gmonster-pervasive-typedef cpu_time 10-cus 0.007923
> gmonster1:gmonster-pervasive-typedef cpu_time 100-cus 0.061346
> gmonster1:gmonster-pervasive-typedef cpu_time 1000-cus 0.7087322
> gmonster1:gmonster-pervasive-typedef cpu_time 10000-cus 7.6932424
> gmonster1:gmonster-pervasive-typedef wall_time 10-cus 0.00795402526855
> gmonster1:gmonster-pervasive-typedef wall_time 100-cus 0.061425447464
> gmonster1:gmonster-pervasive-typedef wall_time 1000-cus 0.709506464005
> gmonster1:gmonster-pervasive-typedef wall_time 10000-cus 7.70150403976
> gmonster1:gmonster-pervasive-typedef vmsize 10-cus 110600
> gmonster1:gmonster-pervasive-typedef vmsize 100-cus 119276
> gmonster1:gmonster-pervasive-typedef vmsize 1000-cus 206218
> gmonster1:gmonster-pervasive-typedef vmsize 10000-cus 1079663
> gmonster2:gmonster-ptype-string cpu_time 10-sos 0.2961394
> gmonster2:gmonster-ptype-string cpu_time 100-sos 1.5917764
> gmonster2:gmonster-ptype-string cpu_time 1000-sos 20.6852
> gmonster2:gmonster-ptype-string wall_time 10-sos 0.296435832977
> gmonster2:gmonster-ptype-string wall_time 100-sos 1.5934440136
> gmonster2:gmonster-ptype-string wall_time 1000-sos 20.7090939522
> gmonster2:gmonster-ptype-string vmsize 10-sos 283208
> gmonster2:gmonster-ptype-string vmsize 100-sos 702776
> gmonster2:gmonster-ptype-string vmsize 1000-sos 4908408
>
> After (trunk + patch):
>
> bash$ sh runperf.sh
> bash$ cat perftest.sum
> gmonster1:gmonster-pervasive-typedef cpu_time 10-cus 0.0077614
> gmonster1:gmonster-pervasive-typedef cpu_time 100-cus 0.063923
> gmonster1:gmonster-pervasive-typedef cpu_time 1000-cus 0.7615324
> gmonster1:gmonster-pervasive-typedef cpu_time 10000-cus 7.898073
> gmonster1:gmonster-pervasive-typedef wall_time 10-cus 0.00778799057007
> gmonster1:gmonster-pervasive-typedef wall_time 100-cus 0.0640145301819
> gmonster1:gmonster-pervasive-typedef wall_time 1000-cus 0.762880802155
> gmonster1:gmonster-pervasive-typedef wall_time 10000-cus 7.90763082504
> gmonster1:gmonster-pervasive-typedef vmsize 10-cus 108520
> gmonster1:gmonster-pervasive-typedef vmsize 100-cus 117200
> gmonster1:gmonster-pervasive-typedef vmsize 1000-cus 204180
> gmonster1:gmonster-pervasive-typedef vmsize 10000-cus 1077580
> gmonster2:gmonster-ptype-string cpu_time 10-sos 0.3188818
> gmonster2:gmonster-ptype-string cpu_time 100-sos 1.7196954
> gmonster2:gmonster-ptype-string cpu_time 1000-sos 21.5444378
> gmonster2:gmonster-ptype-string wall_time 10-sos 0.319199228287
> gmonster2:gmonster-ptype-string wall_time 100-sos 1.72196946144
> gmonster2:gmonster-ptype-string wall_time 1000-sos 21.5659247875
> gmonster2:gmonster-ptype-string vmsize 10-sos 281128
> gmonster2:gmonster-ptype-string vmsize 100-sos 700628
> gmonster2:gmonster-ptype-string vmsize 1000-sos 4906312
>
> 3-4% isn't much, but I wouldn't have expected any slowdown.
> I haven't ruled out the problem is elsewhere and not with
> the patch, but I have repeated the results a couple of times,
> so at least it's consistent. :-)

Arg, I cannot reproduce the difference: here are the results on my 
machine (still x86_64-linux) for the same testing:

trunk:
gmonster1:gmonster-pervasive-typedef cpu_time 10-cus 0.0046084
gmonster1:gmonster-pervasive-typedef cpu_time 100-cus 0.0371068
gmonster1:gmonster-pervasive-typedef cpu_time 1000-cus 0.4631964
gmonster1:gmonster-pervasive-typedef cpu_time 10000-cus 5.078225
gmonster1:gmonster-pervasive-typedef wall_time 10-cus 0.00461478233337
gmonster1:gmonster-pervasive-typedef wall_time 100-cus 0.0370876789093
gmonster1:gmonster-pervasive-typedef wall_time 1000-cus 0.462884044647
gmonster1:gmonster-pervasive-typedef wall_time 10000-cus 5.0744289875
gmonster1:gmonster-pervasive-typedef vmsize 10-cus 154345
gmonster1:gmonster-pervasive-typedef vmsize 100-cus 163028
gmonster1:gmonster-pervasive-typedef vmsize 1000-cus 249839
gmonster1:gmonster-pervasive-typedef vmsize 10000-cus 1118777
gmonster2:gmonster-ptype-string cpu_time 10-sos 0.1663808
gmonster2:gmonster-ptype-string cpu_time 100-sos 1.0682334
gmonster2:gmonster-ptype-string cpu_time 1000-sos 15.5775406
gmonster2:gmonster-ptype-string wall_time 10-sos 0.166248464584
gmonster2:gmonster-ptype-string wall_time 100-sos 1.06737132072
gmonster2:gmonster-ptype-string wall_time 1000-sos 15.5648618221
gmonster2:gmonster-ptype-string vmsize 10-sos 278092
gmonster2:gmonster-ptype-string vmsize 100-sos 697980
gmonster2:gmonster-ptype-string vmsize 1000-sos 4902260

trunk + patch:
gmonster1:gmonster-pervasive-typedef cpu_time 10-cus 0.0045336
gmonster1:gmonster-pervasive-typedef cpu_time 100-cus 0.0370356
gmonster1:gmonster-pervasive-typedef cpu_time 1000-cus 0.4546976
gmonster1:gmonster-pervasive-typedef cpu_time 10000-cus 5.0182104
gmonster1:gmonster-pervasive-typedef wall_time 10-cus 0.004541015625
gmonster1:gmonster-pervasive-typedef wall_time 100-cus 0.0370160579681
gmonster1:gmonster-pervasive-typedef wall_time 1000-cus 0.454346561432
gmonster1:gmonster-pervasive-typedef wall_time 10000-cus 5.0142261982
gmonster1:gmonster-pervasive-typedef vmsize 10-cus 154429
gmonster1:gmonster-pervasive-typedef vmsize 100-cus 163112
gmonster1:gmonster-pervasive-typedef vmsize 1000-cus 249923
gmonster1:gmonster-pervasive-typedef vmsize 10000-cus 1118861
gmonster2:gmonster-ptype-string cpu_time 10-sos 0.1646056
gmonster2:gmonster-ptype-string cpu_time 100-sos 1.050177
gmonster2:gmonster-ptype-string cpu_time 1000-sos 15.346854
gmonster2:gmonster-ptype-string wall_time 10-sos 0.16447520256
gmonster2:gmonster-ptype-string wall_time 100-sos 1.04933385849
gmonster2:gmonster-ptype-string wall_time 1000-sos 15.3345376492
gmonster2:gmonster-ptype-string vmsize 10-sos 277932
gmonster2:gmonster-ptype-string vmsize 100-sos 697880
gmonster2:gmonster-ptype-string vmsize 1000-sos 4902008

I re-ran the tests twice, but the only think I get is a really tiny (but 
consistent) performance improvement with the patch… which does not make 
sense! It's concerning as 4% isn't really neglectable and as I would not 
have expected this neither. So I'm not sure what to do at this point.

-- 
Pierre-Marie de Rodat


  reply	other threads:[~2015-08-17 13:27 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-02 14:36 [PATCH] Add proper handling for non-local references in nested subprograms Pierre-Marie de Rodat
2015-03-10 15:26 ` Pedro Alves
2015-03-20 12:24   ` [PATCH] Add proper handling for non-local references in nested functions Pierre-Marie de Rodat
2015-05-29 12:28     ` Pedro Alves
2015-06-09 21:46       ` Pierre-Marie de Rodat
2015-07-22  9:16         ` Pierre-Marie de Rodat
2015-07-22 14:26           ` Doug Evans
2015-07-22 15:14             ` Pierre-Marie de Rodat
2015-07-26 17:28               ` Doug Evans
2015-07-22 17:58             ` Kevin Buettner
2015-07-23  1:36           ` Kevin Buettner
2015-07-23 10:44             ` Pierre-Marie de Rodat
2015-07-23 13:44               ` Kevin Buettner
2015-07-23 16:14                 ` Pierre-Marie de Rodat
2015-07-23 17:22                   ` Kevin Buettner
2015-07-23 17:33                     ` Pierre-Marie de Rodat
2015-07-23 17:51                       ` Kevin Buettner
2015-07-23 18:06                   ` Kevin Buettner
2015-07-23 18:23                     ` Kevin Buettner
2015-07-24 10:38                       ` Pierre-Marie de Rodat
2015-07-26 17:39                         ` Doug Evans
2015-07-24  9:26                     ` Pierre-Marie de Rodat
2015-07-26 20:35               ` Doug Evans
2015-07-31 10:53                 ` Pierre-Marie de Rodat
2015-08-10  8:34                   ` Pierre-Marie de Rodat
2015-08-13 15:03                     ` Doug Evans
2015-08-14  6:31                       ` Pierre-Marie de Rodat
2015-08-15  5:12                   ` Doug Evans
2015-08-15  6:21                     ` Doug Evans
2015-08-17 13:27                       ` Pierre-Marie de Rodat [this message]
2015-08-17 13:33                     ` Pierre-Marie de Rodat
2015-08-22 17:30                       ` Doug Evans
2015-08-25 12:14                         ` Pierre-Marie de Rodat
2015-09-02 23:50                       ` Joel Brobecker
2015-09-03  7:31                         ` Pierre-Marie de Rodat
2015-09-03 12:40                           ` Joel Brobecker
2015-09-03 14:03                             ` Pierre-Marie de Rodat
2015-09-16 16:16                         ` Doug Evans
2015-09-20 18:20                           ` pushed: " Joel Brobecker
2015-08-15  5:13                   ` Doug Evans

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=55D1E13E.2070207@adacore.com \
    --to=derodat@adacore.com \
    --cc=gdb-patches@sourceware.org \
    --cc=kevinb@redhat.com \
    --cc=xdje42@gmail.com \
    /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