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
-
GC performance
by Bryan C. Warnock