[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Benchmarking temporary Lisp objects [Was: Re: [RFC] temporary Lisp_Strin
From: |
Dmitry Antipov |
Subject: |
Benchmarking temporary Lisp objects [Was: Re: [RFC] temporary Lisp_Strings] |
Date: |
Wed, 03 Sep 2014 14:23:29 +0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 |
To whom it may concern, I decided to start from conses and vectors
just because this is simpler than strings. My experimental stuff
is attached, and typical benchmark output may be something like:
Average of 100: stack allocation is 6.879408 times faster for conses
Average of 1000: stack allocation is 7.390145 times faster for conses
Average of 10000: stack allocation is 4.154356 times faster for conses
Average of 100000: stack allocation is 2.417694 times faster for conses
Average of 10: stack allocation is 11.535833 times faster for vectors
Average of 100: stack allocation is 4.731400 times faster for vectors
Average of 1000: stack allocation is 1.443268 times faster for vectors
Note that this is sustained allocation speed; since we're unlikely to
allocate large amounts of Lisp data on stack, real speedup may vary.
Questions:
1) Should alloca_vector fallback to Fmake_vector for large vectors?
2) Is there a way to rewrite alloca_xxx macros to avoid statement
expressions? IIUC this is not portable beyond gcc and compilers
that mimics it (clang, Intel's icc).
Dmitry
cons_vector_benchmark.patch
Description: Text Data
cons-vector-benchmark.el
Description: Text Data
- [RFC] temporary Lisp_Strings, Dmitry Antipov, 2014/09/02
- Re: [RFC] temporary Lisp_Strings, Andreas Schwab, 2014/09/02
- Re: [RFC] temporary Lisp_Strings, Stefan Monnier, 2014/09/02
- Re: [RFC] temporary Lisp_Strings, Dmitry Antipov, 2014/09/02
- Re: [RFC] temporary Lisp_Strings, Stefan Monnier, 2014/09/02
- Benchmarking temporary Lisp objects [Was: Re: [RFC] temporary Lisp_Strings],
Dmitry Antipov <=
- Re: Benchmarking temporary Lisp objects [Was: Re: [RFC] temporary Lisp_Strings], Stefan Monnier, 2014/09/03
- Re: Benchmarking temporary Lisp objects [Was: Re: [RFC] temporary Lisp_Strings], Paul Eggert, 2014/09/03
- Re: Benchmarking temporary Lisp objects [Was: Re: [RFC] temporary Lisp_Strings], Dmitry Antipov, 2014/09/03
- Re: Benchmarking temporary Lisp objects [Was: Re: [RFC] temporary Lisp_Strings], Paul Eggert, 2014/09/03
- Re: Benchmarking temporary Lisp objects [Was: Re: [RFC] temporary Lisp_Strings], Stefan Monnier, 2014/09/03
- Re: Benchmarking temporary Lisp objects [Was: Re: [RFC] temporary Lisp_Strings], Paul Eggert, 2014/09/03
- Re: Benchmarking temporary Lisp objects [Was: Re: [RFC] temporary Lisp_Strings], Dmitry Antipov, 2014/09/04
- Re: Benchmarking temporary Lisp objects [Was: Re: [RFC] temporary Lisp_Strings], Paul Eggert, 2014/09/04
- Re: Benchmarking temporary Lisp objects [Was: Re: [RFC] temporary Lisp_Strings], Dmitry Antipov, 2014/09/04
- Re: Benchmarking temporary Lisp objects [Was: Re: [RFC] temporary Lisp_Strings], Paul Eggert, 2014/09/04