develooper Front page | perl.perl6.internals | Postings from February 2002

GC performance

Thread Next
From:
Bryan C. Warnock
Date:
February 27, 2002 17:21
Subject:
GC performance
Message ID:
200202280118.g1S1IqQ05583@smtp.capita.com
Yowza, you aren't kidding.

mark_buffers_unused() and free_unused_buffers() are a minute each in a three minute-and-change run.

Here's the SPARC disassembly of the heaviest parts (the for loop overhead was 18 seconds each):

                                    89.       /* Tentatively unused, unless it's a constant */
                                    90.       if (!(string_array[i].flags & BUFFER_constant_FLAG)) {
    0.130        0.130                  [ 90]    b92c4:  ld       [%fp - 12], %l2
    3.950        3.950                  [ 90]    b92c8:  ld       [%fp - 8], %l0
    8.860        8.860                  [ 90]    b92cc:  sll      %l0, 5, %l1
    3.970        3.970                  [ 90]    b92d0:  add      %l2, %l1, %l0
    0.110        0.110                  [ 90]    b92d4:  ld       [%l0 + 8], %l0
## 21.660       21.660                  [ 90]    b92d8:  and      %l0, 128, %l0
    4.090        4.090                  [ 90]    b92dc:  cmp      %l0, %g0
    0.           0.                     [ 90]    b92e0:  bne      0xb930c
    0.           0.                     [ 90]    b92e4:  nop      


                                   175.       /* If it's not live or on the free list, put it on the free list */
                                   176.       if (!(string_array[i].flags & (BUFFER_live_FLAG |
                                   177. 				     BUFFER_on_free_list_FLAG))) {
    0.120        0.120                  [177]    b966c:  ld       [%fp - 12], %l2
    4.050        4.050                  [177]    b9670:  ld       [%fp - 8], %l0
    8.300        8.300                  [177]    b9674:  sll      %l0, 5, %l1
    4.240        4.240                  [177]    b9678:  add      %l2, %l1, %l0
    0.170        0.170                  [177]    b967c:  ld       [%l0 + 8], %l0
## 20.740       20.740                  [177]    b9680:  and      %l0, 80, %l0
    4.350        4.350                  [177]    b9684:  cmp      %l0, %g0
    0.           0.                     [177]    b9688:  bne      0xb96bc
    0.           0.                     [177]    b968c:  nop      


-- 
Bryan C. Warnock
bwarnock@capita.com

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About