Emacs日常 2021/4/30

Posted Random Tech Notes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Emacs日常 2021/4/30相关的知识,希望对你有一定的参考价值。

分享一些Emacs的新闻和经验。


42倍性能提升!Emacs 28将支持Emacs-Lisp原生编译!


Emacs内部使用的脚本语言Emacs-Lisp(elisp)目前仍然是解释执行或编译成bytecode执行,这使得Emacs在运行扩展脚本的时候速度较慢。


Corallo, Nassi, Manca等利用libgccjit,将elisp脚本编译成机器原生代码,在使用的时候动态加载运行。在测试中,原生编译的elisp包,运行速度较现有的解释/bytecode执行有2.3倍到42倍的提升!


目前elisp原生编译的代码已经合入Emacs master库,预计将出现在28.1版本中(今年晚些时候发布)。


相关论文:https://arxiv.org/abs/2004.02504


Emacs Garbage Collection设置


Emacs默认的GC阈值比较保守,如果电脑内存足够的话,其实可以把它设大一点。此外,在minibuffer里交互的时候,也可以把GC暂时关掉,以免影响交互的流畅度。


;; 增加GC阈值到10MB,如果觉得太低可以再加大(setq gc-cons-threshold (* 1024 1024 10))
;; 进入minibuffer的时候关闭GC(defun my-minibuffer-setup-hook () (setq gc-cons-threshold most-positive-fixnum))  ;; 退出minibuffer的时候重新打开GC(defun my-minibuffer-exit-hook () (setq gc-cons-threshold (* 1024 1024 10)))
;; 挂上minibuffer的钩子(add-hook 'minibuffer-setup-hook #'my-minibuffer-setup-hook)(add-hook 'minibuffer-exit-hook #'my-minibuffer-exit-hook)


至于效果?我暂时还没看出来…… :-)

以上是关于Emacs日常 2021/4/30的主要内容,如果未能解决你的问题,请参考以下文章

译文:18个实用的JavaScript代码片段,助你快速处理日常编程任务

VsCode 代码片段-提升研发效率

sublimetext3中保存代码片段

Emacs 使用org-agenda 管理日程

Doom Emacs 简介

day8 没有emacs和耳机的早上我不想背单词