- About Scala
- Documentation
- Code Examples
- Software
- Scala Developers
scala benchmark charts
Wed, 2012-02-01, 20:59
[Moved to scala-internals, quoted below for context.]
The subject under discussion is our jagged benchmark graph:
http://www.scala-lang.org/node/359/master!Compilation%20time%20-%20quick_comp
It looks like the old charts are gone unfortunately, but if they were
there you would see that they were smooth. If the time jumped up or
down, you could celebrate or hang head your head as the direction
indicated and with confidence your head was doing the right thing.
Now it's an emotional rollercoaster. (See attached.)
To grek, toni: it appears all we have to do is generate the charts according to
git log --topo-order
instead of what I presume was done, default git log. Antonio, can you
do this? Hopefully it won't be too challenging to use the already
collected metrics.
git-log says:
By default, the commits are shown in reverse chronological order.
--topo-order
This option makes them appear in topological order (i.e.
descendant commits are shown before their parents).
Watch them change order before your very eyes, the two slow ones
adjacent moving adjacent to one another:
% git log --oneline | egrep '(3e9e4ecf36|7adb4784bf|9393efc68a|ddff6ac6a6)'
ddff6ac6a6 Add a mnemonic to help remember what's the difference
between +: and :+, plus one for ++:.
9393efc68a Reification of classes now produces trees that can be
compiled and run.
7adb4784bf Tweaked ident suggestions.
3e9e4ecf36 Added -Ysuggest-idents.
% git log --topo-order --oneline | egrep
'(3e9e4ecf36|7adb4784bf|9393efc68a|ddff6ac6a6)'
9393efc68a Reification of classes now produces trees that can be
compiled and run.
ddff6ac6a6 Add a mnemonic to help remember what's the difference
between +: and :+, plus one for ++:.
7adb4784bf Tweaked ident suggestions.
3e9e4ecf36 Added -Ysuggest-idents.
On Sun, Jan 29, 2012 at 8:48 AM, Grzegorz Kossakowski
wrote:
> On 28 January 2012 17:42, Paul Phillips wrote:
>>
>> On Wed, Jan 25, 2012 at 1:34 PM, Paul Phillips
>> wrote:
>> > trunk2/timing.txt:[stopwatch] [quick.comp.timer: 1:48.060 sec]
>> > trunk3/timing.txt:[stopwatch] [quick.comp.timer: 1:56.150 sec]
>> > trunk4/timing.txt:[stopwatch] [quick.comp.timer: 1:48.000 sec]
>> > trunk5/timing.txt:[stopwatch] [quick.comp.timer: 1:55.298 sec]
>>
>> I have the explanation for this. None of us is accustomed (at least
>> in this context) to our new friend, the non-linear history. The
>> reason it bounces around like that is that multiple commits have the
>> same parent. I'm not sure what the best way to handle it is, but we
>> need to deal with it or the charts will not be useful.
>
>
> What about generating charts for each commit in linearlized history? Git
> already makes your history linear when displaying output for commands like
> git log or gitk. We would need to make sure that linearization algorithm is
> monotonic/stable so our charts are not going to be messed up by new commits
> arriving and affecting the order of old commits.
>
> I'd be very surprised if Git's algorithm wasn't monotonic/stable, though.
>
> PS. I'm attaching to my signature a very popular request (these days) stated
> on this list.
>
> --
> Can we move it to scala-internals?
> Grzegorz
>
Wed, 2012-02-01, 21:31
#2
Re: scala benchmark charts
On 01/02/2012 20:59, Paul Phillips wrote:
> [Moved to scala-internals, quoted below for context.]
>
> [...]
>
> To grek, toni: it appears all we have to do is generate the charts according to
>
> git log --topo-order
>
> instead of what I presume was done, default git log. Antonio, can you
> do this? Hopefully it won't be too challenging to use the already
> collected metrics.
>
Sure, the metrics are associated to the commit, so it's just a matter of
finding the most convenient visualization tool (I also looked a bit into
3D and other eclectic chart tools, but I couldn't find anything
sufficiently effective).
> --topo-order
> This option makes them appear in topological order (i.e.
> descendant commits are shown before their parents).
>
Good find! Right now I am sorting commits according to their timestamp;
I'll rely on the output of --topo-order instead. I will make the
necessary changes shortly.
Toni
Thu, 2012-02-02, 02:01
#3
Re: scala benchmark charts
On 01/02/2012 20:59, Paul Phillips wrote:
> [Moved to scala-internals, quoted below for context.]
>
> The subject under discussion is our jagged benchmark graph:
>
> http://www.scala-lang.org/node/359/master!Compilation%20time%20-%20quick_comp
> [...]
> To grek, toni: it appears all we have to do is generate the charts according to
>
> git log --topo-order
>
> instead of what I presume was done, default git log. Antonio, can you
> do this? Hopefully it won't be too challenging to use the already
> collected metrics.
>
Done: the chart is now generated according to the order given by git log
--topo-order. However, the result is no better than it was before.
I'll try and think about possible alternatives, although the matter is a
bit tricky.
> % git log --topo-order --oneline | egrep
> '(3e9e4ecf36|7adb4784bf|9393efc68a|ddff6ac6a6)'
> 9393efc68a Reification of classes now produces trees that can be
> compiled and run.
> ddff6ac6a6 Add a mnemonic to help remember what's the difference
> between +: and :+, plus one for ++:.
> 7adb4784bf Tweaked ident suggestions.
> 3e9e4ecf36 Added -Ysuggest-idents.
>
Thu, 2012-02-02, 04:31
#4
Re: scala benchmark charts
On Wed, Feb 1, 2012 at 5:00 PM, Antonio Cunei wrote:
> Done: the chart is now generated according to the order given by git log
> --topo-order. However, the result is no better than it was before.
> I'll try and think about possible alternatives, although the matter is a bit
> tricky.
The next thing I'd suggest trying is this order:
git log --oneline --ancestry-path --simplify-merges $(git merge-base
v2.9.1 HEAD)..HEAD
Thu, 2012-02-02, 04:41
#5
Re: scala benchmark charts
> PS. I'm attaching to my signature a very popular request (these days) stated
> on this list.
I vote you attach a fresh snapshot of that compile time graph to your signature. Much cooler.
>
> --
> Can we move it to scala-internals?
> Grzegorz
>
Thu, 2012-02-02, 22:11
#6
Re: scala benchmark charts
On Wed, 1 Feb 2012, Paul Phillips wrote:
> On Wed, Feb 1, 2012 at 5:00 PM, Antonio Cunei wrote:
>> Done: the chart is now generated according to the order given by git log
>> --topo-order. However, the result is no better than it was before.
>> I'll try and think about possible alternatives, although the matter is a bit
>> tricky.
>
> The next thing I'd suggest trying is this order:
>
> git log --oneline --ancestry-path --simplify-merges $(git merge-base
> v2.9.1 HEAD)..HEAD
>
It's up now.
Fri, 2012-02-03, 01:41
#7
Re: scala benchmark charts
On Thu, Feb 2, 2012 at 1:06 PM, Antonio Cunei wrote:
> It's up now.
I supposed from the level of joy not emanating from this sentence that
mr. jaggy must still be with us, and indeed. If anyone in the stadium
seats would like to investigate this matter, your contribution could
well mean the difference between "fast scala" and "not so fast scala".
Thu, 2012-02-09, 16:51
#8
Re: scala benchmark charts
On Thu, Feb 2, 2012 at 22:32, Paul Phillips wrote:
> On Thu, Feb 2, 2012 at 1:06 PM, Antonio Cunei wrote:
>> It's up now.
>
> I supposed from the level of joy not emanating from this sentence that
> mr. jaggy must still be with us, and indeed. If anyone in the stadium
> seats would like to investigate this matter, your contribution could
> well mean the difference between "fast scala" and "not so fast scala".
Is the scale the same? For all it goes up and down, it does so with
variations of less than three seconds for the most part.
On Wed, Feb 1, 2012 at 11:59 AM, Paul Phillips wrote:
> hang head your head
> adjacent moving adjacent
Clearly time to clean this sticky keyboard. (Yes, I use a word-based
not letter-based keyboard.)