[[!toc ]] Q&A: live Duration: 35:35 If you have questions and the speaker has not indicated public contact information on this page, please feel free to e-mail us at and we'll forward your question to the speaker. # Talk [[!template id="vid" vidid="mainVideo" src="https://media.emacsconf.org/2021/emacsconf-2021-faster--optimizing-emacs-lisp-code--dmitry-gutov--main.webm" poster="https://media.emacsconf.org/2021/emacsconf-2021-faster--optimizing-emacs-lisp-code--dmitry-gutov--main.png" captions="""""" size="97.5M" duration="35:35" other_resources="""[Download .org](https://media.emacsconf.org/2021/emacsconf-2021-faster--optimizing-emacs-lisp-code--dmitry-gutov.org) [Download .el](https://media.emacsconf.org/2021/emacsconf-2021-faster--optimizing-emacs-lisp-code--dmitry-gutov.el) [Download --compressed56.webm (57.5MB)](https://media.emacsconf.org/2021/emacsconf-2021-faster--optimizing-emacs-lisp-code--dmitry-gutov--compressed56.webm) [Download --main.vtt](https://media.emacsconf.org/2021/emacsconf-2021-faster--optimizing-emacs-lisp-code--dmitry-gutov--main.vtt) [Download --chapters.vtt](https://media.emacsconf.org/2021/emacsconf-2021-faster--optimizing-emacs-lisp-code--dmitry-gutov--chapters.vtt) [Download --main--chapters.vtt](https://media.emacsconf.org/2021/emacsconf-2021-faster--optimizing-emacs-lisp-code--dmitry-gutov--main--chapters.vtt) [View on Toobnix](https://toobnix.org/w/kJkKrSyfeuhL7Gttgxb572) """]] [[!template id="chapters" vidid="mainVideo" data=""" 00:01 Introduction 02:36 Emacs Lisp is a little old 04:19 Benchmark then optimize, not vice versa 05:03 profiler-start 09:31 elp - Emacs Lisp Profiler 13:01 benchmark 19:13 Write less code 20:00 Reduce allocations 22:52 Recent optimizations in Xref 30:52 cl-lib, dash, and seq """]] # Q&A [[!template id="vid" vidid="qanda" src="https://media.emacsconf.org/2021/emacsconf-2021-faster--optimizing-emacs-lisp-code--dmitry-gutov--answers.webm" poster="https://media.emacsconf.org/2021/emacsconf-2021-faster--optimizing-emacs-lisp-code--dmitry-gutov--answers.png" size="96.9M" duration="41:29" other_resources="""[Download --answers--compressed32.webm (85.8MB)](https://media.emacsconf.org/2021/emacsconf-2021-faster--optimizing-emacs-lisp-code--dmitry-gutov--answers--compressed32.webm) """]] [[!template id="chapters" vidid="qanda" data=""" 00:00 Why are overlays slow compared to text properties? 03:21 Would these optimizations be helpful in a personal init.el? 04:28 What's a good approach for benchmarking destructive operations? 06:06 Do you recommend avoiding cl-defstruct in favour of "pure" lists/vectors? 08:20 Possible to optimize Emacs packages with code compiled from other languages? 10:26 (Q&A logistics) 12:25 What about text properties vs. buffer-local variables to store position cache? 18:40 Followup on earlier cl-defstruct benchmark discussion RE: AVL trees 30:48 Does cl-defstruct have memory overhead/general memory usage discussion """]] # Description