From: Daniel B. <da...@te...> - 2004-07-28 12:46:59
Attachments:
inline-alloc.diff
|
I tried reinstating inline allocation for gencgc, but in my limited testing it makes basically no difference to the speed of anything, and so I don't think the extra complexity is a win. If anyone has other applications that they believe might be limited by allocation speed, or feels like running some comparative benchmarking on a Linux box, please apply and try this patch. Note this is only for gencgc (allocation for cheney gc is inline already) and only for multithread builds - although the conversion to unithread is probably fairly simple. |
From: Juho S. <js...@ik...> - 2004-07-29 00:20:23
|
<da...@te...> wrote: > I tried reinstating inline allocation for gencgc, but in my limited > testing it makes basically no difference to the speed of anything, and > so I don't think the extra complexity is a win. If anyone has other > applications that they believe might be limited by allocation speed, > or feels like running some comparative benchmarking on a Linux box, > please apply and try this patch. You managed to test just about the only thing that the patch didn't improve :-) At least it gives ~5-15% improvements on consy cl-bench tests (for example sum-permutations, deriv, div2-test, and CLOS/simple-instantiate). Full results: Benchmark Reference 0.8.13.8 0.8.13.8-inline ------------------------------------------------------------------------- COMPILER [ 35.65|0.36] 1.00|0.0102 1.00|0.0013 LOAD-FASL [ 1.35|0.01] 1.00|0.0061 0.99|0.0015 SUM-PERMUTATIONS [ 4.58|0.02] 1.00|0.0040 0.84|0.0013 WALK-LIST/SEQ [ 0.69|0.01] 1.00|0.0117 0.99|0.0013 WALK-LIST/MESS [ 2.93|0.02] 1.00|0.0070 0.99|0.0011 BOYER [ 14.99|0.04] 1.00|0.0027 0.98|0.0005 BROWSE [ 2.27|0.02] 1.00|0.0102 0.94|0.0009 DDERIV [ 2.10|0.00] 1.00|0.0021 0.96|0.0005 DERIV [ 2.27|0.01] 1.00|0.0054 0.93|0.0012 DESTRUCTIVE [ 2.31|0.01] 1.00|0.0048 0.92|0.0008 DIV2-TEST-1 [ 2.21|0.01] 1.00|0.0042 0.88|0.0015 DIV2-TEST-2 [ 2.20|0.03] 1.00|0.0154 0.92|0.0008 FFT [ 3.08|0.01] 1.00|0.0041 0.98|0.0010 FRPOLY/FIXNUM [ 2.66|0.03] 1.00|0.0122 0.98|0.0007 FRPOLY/BIGNUM [ 2.53|0.02] 1.00|0.0060 1.00|0.0008 FRPOLY/FLOAT [ 2.52|0.01] 1.00|0.0042 0.95|0.0006 PUZZLE [ 4.06|0.02] 1.00|0.0056 1.01|0.0005 TAK [ 2.84|0.01] 1.00|0.0032 1.00|0.0009 CTAK [ 3.16|0.01] 1.00|0.0037 0.99|0.0008 TRTAK [ 3.00|0.01] 1.00|0.0018 0.99|0.0008 TAKL [ 2.66|0.07] 1.00|0.0258 0.97|0.0007 STAK [ 3.50|0.02] 1.00|0.0048 0.99|0.0004 FPRINT/UGLY [ 2.12|0.01] 1.00|0.0041 1.07|0.0027 FPRINT/PRETTY [ 1.83|0.01] 1.00|0.0043 1.00|0.0038 TRAVERSE [ 4.38|0.02] 1.00|0.0047 0.99|0.0007 TRIANGLE [ 3.96|0.01] 1.00|0.0027 1.02|0.0006 RICHARDS [ 4.19|0.04] 1.00|0.0103 1.00|0.0146 FACTORIAL [ 2.29|0.01] 1.00|0.0027 1.00|0.0015 FIB [ 2.65|0.01] 1.00|0.0036 1.03|0.0019 FIB-RATIO [ 2.24|0.01] 1.00|0.0043 1.01|0.0006 ACKERMANN [ 7.35|0.07] 1.00|0.0098 1.03|0.0023 MANDELBROT/COMPLEX [ 2.12|0.00] 1.00|0.0018 0.98|0.0011 MANDELBROT/DFLOAT [ 3.04|0.01] 1.00|0.0044 0.96|0.0008 MRG32K3A [ 2.69|0.00] 1.00|0.0016 1.02|0.0008 BIGNUM/ELEM-100-1000 [ 3.10|0.02] 1.00|0.0052 0.99|0.0009 BIGNUM/ELEM-1000-100 [ 3.03|0.02] 1.00|0.0051 0.99|0.0016 BIGNUM/ELEM-10000-1 [ 3.31|0.02] 1.00|0.0065 0.99|0.0024 BIGNUM/PARI-100-10 [ 2.76|0.02] 1.00|0.0074 0.99|0.0028 BIGNUM/PARI-200-5 [ 8.05|0.05] 1.00|0.0068 0.99|0.0014 PI-DECIMAL/SMALL [ 2.71|0.02] 1.00|0.0056 0.99|0.0009 PI-ATAN [ 2.55|0.02] 1.00|0.0072 1.00|0.0030 PI-RATIOS [ 5.38|0.03] 1.00|0.0062 1.00|0.0006 SLURP-LINES [ 2.59|0.02] 1.00|0.0070 0.97|0.0003 HASH-STRINGS [ 1.88|0.01] 1.00|0.0063 0.99|0.0012 HASH-INTEGERS [ 1.97|0.02] 1.00|0.0088 0.99|0.0054 BOEHM-GC [ 2.49|0.02] 1.00|0.0072 0.96|0.0008 DEFLATE-FILE [ 1.79|0.01] 1.00|0.0047 0.99|0.0008 1D-ARRAYS [ 2.34|0.01] 1.00|0.0056 0.98|0.0019 2D-ARRAYS [ 3.93|0.02] 1.00|0.0049 0.99|0.0003 3D-ARRAYS [ 5.74|0.04] 1.00|0.0063 0.99|0.0005 BITVECTORS [ 2.19|0.01] 1.00|0.0040 0.99|0.0005 BENCH-STRINGS [ 2.60|0.02] 1.00|0.0084 0.98|0.0009 SEARCH-SEQUENCE [ 2.68|0.03] 1.00|0.0100 1.00|0.0010 CLOS/defclass [ 2.79|0.02] 1.00|0.0056 0.98|0.0007 CLOS/defmethod [ 8.09|0.03] 1.00|0.0041 1.00|0.0061 CLOS/instantiate [ 11.80|0.07] 1.00|0.0055 0.98|0.0056 CLOS/simple-instantiate [ 0.42|0.01] 1.00|0.0269 0.85|0.0016 CLOS/methodcalls [ 2.47|0.02] 1.00|0.0074 1.02|0.0011 CLOS/method+after [ 8.49|0.08] 1.00|0.0098 1.00|0.0008 CLOS/complex-methods [ 2.72|0.03] 1.00|0.0113 1.05|0.0009 EQL-SPECIALIZED-FIB [ 2.57|0.02] 1.00|0.0062 0.99|0.0006 Reference time in first column is in seconds; other columns are relative Reference implementation: SBCL 0.8.13.8 Impl 0.8.13.8: SBCL 0.8.13.8 Impl 0.8.13.8-inline: SBCL 0.8.13.8-inline === Test machine === Machine-instance: kiki Machine-type: X86 Machine-version: AMD Athlon(tm) 64 Processor 2800+ Linux kiki 2.6.6-1.427 #1 Thu Jun 10 09:33:07 EDT 2004 x86_64 x86_64 x86_64 GNU/Linux -- Juho Snellman |