Changes between Version 11 and Version 12 of DynamicByDefault


Ignore:
Timestamp:
Nov 24, 2012 4:20:37 PM (17 months ago)
Author:
igloo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DynamicByDefault

    v11 v12  
    55 
    66Full nofib results showing the effect of switching to dynamic-by-default are available for  
    7 [http://lambda.haskell.org/~igloo/dynamic-by-default/nofib-osx-x86_64.html OS X 64bit], 
    8 [http://lambda.haskell.org/~igloo/dynamic-by-default/nofib-osx-x86.html OS X 32bit], 
    9 [http://lambda.haskell.org/~igloo/dynamic-by-default/nofib-linux-x86_64.html Linux 64bit] and 
    10 [http://lambda.haskell.org/~igloo/dynamic-by-default/nofib-linux-x86.html Linux 32bit]. There is also a table of the highlights below. In summary: 
     7[http://lambda.haskell.org/~igloo/dynamic-by-default/nofib-osx-x86_64.html OS X x86_64], 
     8[http://lambda.haskell.org/~igloo/dynamic-by-default/nofib-osx-x86.html OS X x86], 
     9[http://lambda.haskell.org/~igloo/dynamic-by-default/nofib-linux-x86_64.html Linux x86_64] and 
     10[http://lambda.haskell.org/~igloo/dynamic-by-default/nofib-linux-x86.html Linux x86]. There is also a table of the highlights below. In summary: 
    1111 
    1212Binary sizes are way down across the board, as we are now dynamically linking to the libraries. 
    1313 
    14 Things are rosiest on OS X 64bit. On this platform, `-fPIC` is always on, so using dynamic libraries doesn't mean giving up a register for PIC. Overall, performance is a few percent ''better'' with dynamic by default. 
     14Things are rosiest on OS X x86_64. On this platform, `-fPIC` is always on, so using dynamic libraries doesn't mean giving up a register for PIC. Overall, performance is a few percent ''better'' with dynamic by default. 
    1515 
    16 On OS X 32bit, the situation is not so nice. On x86 we are very short on registers, and giving up another for PIC means we end up around 15% down on performance. 
     16On OS X x86, the situation is not so nice. On x86 we are very short on registers, and giving up another for PIC means we end up around 15% down on performance. 
    1717 
    18 On Linux 64bit we have more registers, so the effect of giving one up for PIC isn't so pronounced, but we still lose a few percent performance overall. 
     18On Linux x86_64 we have more registers, so the effect of giving one up for PIC isn't so pronounced, but we still lose a few percent performance overall. 
    1919 
    20 For unknown reasons, 32bit Linux suffers even worse than 32bit OS X, with around a 30% performance penalty. 
     20For unknown reasons, x86 Linux suffers even worse than x86 OS X, with around a 30% performance penalty. 
    2121 
    2222{{{ 
     
    2424<table border="1"> 
    2525<tr><td></td> 
    26     <th style="font-weight: bold;">static -> dynamic<br />on OS X 64bit</th> 
    27     <th style="font-weight: bold;">static -> dynamic<br />on OS X 32bit</th> 
    28     <th style="font-weight: bold;">static -> dynamic<br />on Linux 64bit</th> 
    29     <th style="font-weight: bold;">static -> dynamic<br />on Linux 32bit</th> 
     26    <th style="font-weight: bold;">static -> dynamic<br />on OS X x86_64</th> 
     27    <th style="font-weight: bold;">static -> dynamic<br />on OS X x86</th> 
     28    <th style="font-weight: bold;">static -> dynamic<br />on Linux x86_64</th> 
     29    <th style="font-weight: bold;">static -> dynamic<br />on Linux x86</th> 
    3030</tr> 
    3131 
     
    7272}}} 
    7373 
    74 == OS X 32bit vs 64bit == 
     74== OS X x86 vs x86_64 == 
    7575 
    76 Currently, some people use the 32bit version of GHC on OS X for performance reasons. It's not clear for how much longer this will be viable, as other OS X libraries start dropping 32bit support. 
     76Currently, some people use the x86 version of GHC on OS X for performance reasons. It's not clear for how much longer this will be viable, as other OS X libraries start dropping x86 support. 
    7777 
    7878Full nofib results comparing the two are 
     
    8080[http://lambda.haskell.org/~igloo/dynamic-by-default/nofib-osx-x86-x86_64-dyn.html here for dynamic by default], but the highlights are in the table below. 
    8181 
    82 The left-hand column shows the status quo: 64bit only beats 32bit in mutator time, and that is a shallow victory as the higher GC time means that total runtime is worse for 64bit. 
     82The left-hand column shows the status quo: x86_64 only beats x86 in mutator time, and that is a shallow victory as the higher GC time means that total runtime is worse for x86_64. 
    8383 
    84 The right-hand column shows what the situation would be if we switch to dynamic instead. Allocations, memory use etc remain higher due to all word-sized things being twice as big. However, the speed difference moves in 64bit's favour, and 64bit is now faster overall. 
     84The right-hand column shows what the situation would be if we switch to dynamic instead. Allocations, memory use etc remain higher due to all word-sized things being twice as big. However, the combination of x86_64's performance improving, and x86's performance getting worse, means that x86_64 is now faster overall. 
    8585 
    8686{{{