From: Brian M. <br...@ma...> - 2005-08-06 02:05:17
|
I've done a little profiling on host-1 on 0.9.3 on PPC, and based on the results I think there are some functions which need to be looked over and optimized. Below this paragraph is the results of where the first 50% of the time is spent. It should be obvious from this which functions need serious work: for instance, SB-C::GET-INFO-VALUE accounts for 2.8% of the time, more than any other compiler function, and it doesn't look particularly hairy. SXHASH and GETHASH show up quite strongly, as do EQUAL and EQL. SB-INT:EQUAL-BUT-NO-CAR- RECURSION is #14 on the list, and right now I'm testing a build with a version which is twice as fast. I think there is definitely some low-hanging fruit to be found here. Self Cumul Total Nr Count % Count % Count % Function ------------------------------------------------------------------------ 1 399 4.2 399 4.2 399 4.2 "no debug information for frame" 2 329 3.4 332 3.5 728 7.6 (SB-C::TL-XEP SB- KERNEL:SUB-GC) 3 267 2.8 427 4.5 995 10.4 (SB-C::TL-XEP SB-C::GET- INFO-VALUE) 4 199 2.1 222 2.3 1194 12.5 (SB-C::TL-XEP SXHASH) 5 172 1.8 216 2.3 1366 14.3 (SB-C::TL-XEP GETHASH) 6 133 1.4 270 2.8 1499 15.7 (SB-C::TL-XEP SB- KERNEL:VALUES-SPECIFIER-TYPE) 7 130 1.4 172 1.8 1629 17.0 (SB-C::TL-XEP EQUAL) 8 126 1.3 194 2.0 1755 18.3 (SB-C::TL-XEP SB- KERNEL:HAIRY-DATA-VECTOR-SET) 9 120 1.3 121 1.3 1875 19.6 (SB-C::TL-XEP EQL) 10 107 1.1 157 1.6 1982 20.7 (SB-C::TL-XEP SB- KERNEL:CSUBTYPEP) 11 105 1.1 105 1.1 2087 21.8 (SB-C::TL-XEP SB-KERNEL:: %MAKE-INSTANCE-WITH-LAYOUT) 12 105 1.1 105 1.1 2192 22.9 (SB-C::TL-XEP SB-KERNEL:% WITH-ARRAY-DATA) 13 102 1.1 111 1.2 2294 24.0 (SB-C::TL-XEP SB- C::COMPACT-INFO-LOOKUP) 14 100 1.0 121 1.3 2394 25.0 (SB-C::TL-XEP SB- INT:EQUAL-BUT-NO-CAR-RECURSION) 15 97 1.0 218 2.3 2491 26.0 (SB-C::TL-XEP SB- KERNEL:SPECIFIER-TYPE) 16 92 1.0 130 1.4 2583 27.0 (SB-C::TL-XEP SB- KERNEL:HAIRY-DATA-VECTOR-REF) 17 88 0.9 169 1.8 2671 27.9 (SB-C::TL-XEP SB- KERNEL::MAKE-VALUES-TYPE-CACHED) 18 79 0.8 302 3.2 2750 28.7 (SB-C::TL-XEP SB-C::IR1- CONVERT) 19 75 0.8 85 0.9 2825 29.5 (SB-C::TL-XEP ADJOIN) 20 68 0.7 68 0.7 2893 30.2 (SB-C::TL-XEP SB-C::NODE- HOME-LAMBDA) 21 66 0.7 66 0.7 2959 30.9 (LAMBDA (SB-PCL::.ARG0.)) 22 64 0.7 88 0.9 3023 31.6 (SB-C::TL-XEP SB- KERNEL:TYPE=) 23 63 0.7 63 0.7 3086 32.2 (SB-C::TL-XEP SB-INT:MEMQ) 24 61 0.6 61 0.6 3147 32.9 (SB-C::TL-XEP ARRAY- DIMENSION) 25 61 0.6 116 1.2 3208 33.5 (SB-C::TL-XEP SB- C::POLICY-QUALITY) 26 61 0.6 100 1.0 3269 34.1 (SB-C::TL-XEP SB-C::% EMIT-GENERIC-VOP) 27 60 0.6 92 1.0 3329 34.8 (SB-C::TL-XEP MEMBER) 28 59 0.6 59 0.6 3388 35.4 (SB-C::TL-XEP SB-INT:ASSQ) 29 55 0.6 120 1.3 3443 36.0 (SB-C::TL-XEP REPLACE) 30 51 0.5 51 0.5 3494 36.5 (SB-C::TL-XEP SB- BIGNUM:BIGNUM-TRUNCATE) 31 48 0.5 48 0.5 3542 37.0 (SB-C::TL-XEP COPY-LIST) 32 48 0.5 70 0.7 3590 37.5 (SB-C::TL-XEP SB- C::CONSTRAINT-PROPAGATE-IN-BLOCK) 33 44 0.5 114 1.2 3634 38.0 (SB-C::TL-XEP SB- IMPL::CONCAT-TO-SIMPLE*) 34 44 0.5 90 0.9 3678 38.4 (SB-C::TL-XEP SB-C::MAKE- REF) 35 42 0.4 42 0.4 3720 38.9 (SB-C::TL-XEP SB-INT:DELQ) 36 42 0.4 42 0.4 3762 39.3 (SB-C::TL-XEP ARRAY-RANK) 37 42 0.4 64 0.7 3804 39.7 (SB-C::TL-XEP SB-KERNEL:% COERCE-CALLABLE-TO-FUN) 38 41 0.4 52 0.5 3845 40.2 (SB-C::TL-XEP NUNION) 39 41 0.4 44 0.5 3886 40.6 (LABELS SB-IMPL::S) 40 40 0.4 40 0.4 3926 41.0 (SB-C::TL-XEP SB- C::BLOCK-HOME-LAMBDA-OR-NULL) 41 39 0.4 76 0.8 3965 41.4 (SB-C::TL-XEP SB-C::IR1- OPTIMIZE-BLOCK) 42 39 0.4 165 1.7 4004 41.8 (SB-C::TL-XEP SB-C::IR1- CONVERT-LAMBDA-BODY) 43 39 0.4 41 0.4 4043 42.2 (SB-C::TL-XEP SB- C::VOLATILE-INFO-LOOKUP) 44 39 0.4 53 0.6 4082 42.6 (SB-C::TL-XEP SB-C::MAKE- LAMBDA) 45 38 0.4 59 0.6 4120 43.0 (SB-C::TL-XEP SB-KERNEL:% PUTHASH) 46 37 0.4 37 0.4 4157 43.4 (SB-C::TL-XEP KEYWORDP) 47 37 0.4 57 0.6 4194 43.8 (SB-C::TL-XEP SB- KERNEL:TYPE-INTERSECTION2) 48 37 0.4 37 0.4 4231 44.2 "foreign function write" 49 36 0.4 41 0.4 4267 44.6 (SB-C::TL-XEP SB-C::MAKE- LEXENV) 50 36 0.4 51 0.5 4303 44.9 (SB-C::TL-XEP MAKE-ARRAY) 51 33 0.3 125 1.3 4336 45.3 (SB-C::TL-XEP SB- IMPL::VECTOR-SUBSEQ*) 52 33 0.3 77 0.8 4369 45.6 (SB-C::TL-XEP SB- C::REFERENCE-LEAF) 53 33 0.3 49 0.5 4402 46.0 (SB-C::TL-XEP SB-C::LVAR- TYPE) 54 33 0.3 83 0.9 4435 46.3 (SB-C::TL-XEP SB- KERNEL::SIMPLIFY-INTERSECTIONS) 55 32 0.3 60 0.6 4467 46.7 (SB-C::XEP (LAMBDA (SB- KERNEL:INSTANCE))) 56 32 0.3 33 0.3 4499 47.0 (SB-C::TL-XEP SB- C::PROPAGATE-LIVE-TNS) 57 31 0.3 53 0.6 4530 47.3 (SB-C::TL-XEP SB- KERNEL:VALUES-TYPE-INTERSECTION) 58 31 0.3 31 0.3 4561 47.6 (SB-C::TL-XEP SB-C:MAKE- TN-REF) 59 30 0.3 30 0.3 4591 48.0 (SB-C::TL-XEP SB-C::NODE- ENCLOSING-CLEANUP) 60 29 0.3 29 0.3 4620 48.3 "foreign function ppc_flush_cache_line" 61 28 0.3 52 0.5 4648 48.6 (SB-C::TL-XEP SB- C::FLUSH-DEAD-CODE) 62 28 0.3 28 0.3 4676 48.8 (SB-C::TL-XEP SB-C::MAKE- BLOCK) 63 28 0.3 28 0.3 4704 49.1 (SB-C::TL-XEP SB-INT:MIX) 64 28 0.3 28 0.3 4732 49.4 (SB-C::TL-XEP NCONC) 65 28 0.3 74 0.8 4760 49.7 (SB-C::TL-XEP SB-KERNEL:: %TYPE-INTERSECTION) 66 28 0.3 107 1.1 4788 50.0 (SB-C::TL-XEP SB-C::IR1- OPTIMIZE) -- Brian Mastenbrook br...@ma... http://www.iscblog.info/ |