不可能所有东西在启动时加载完,有些东西总得用时再加载。
C 语言用动态库(*.so),elisp 用模块(*.el)?
C 语言用 dlopen() 加载动态库,elisp 呢?
C 语言用 dlclose() 卸载动态库回收内存,elisp 呢?
C 语言对动态库使用引用计数,调用了多少次 dlopen() 就要调用多少次 dlclose() 才能释放动态库,elisp 呢?
请教 emacs 几个概念
- 自由建客
- 帖子: 13468
- 注册时间: 2008-07-30 23:21
- 系统: Debian stable AMD64
- 老蒋
- 帖子: 52
- 注册时间: 2007-01-21 15:48
- 来自: 四川
Re: 请教 emacs 几个概念
两种语言没有严格的可比性。不是说C语言有的Lisp就要有。自由建客 写了:不可能所有东西在启动时加载完,有些东西总得用时再加载。
C 语言用动态库(*.so),elisp 用模块(*.el)?
C 语言用 dlopen() 加载动态库,elisp 呢?
C 语言用 dlclose() 卸载动态库回收内存,elisp 呢?
C 语言对动态库使用引用计数,调用了多少次 dlopen() 就要调用多少次 dlclose() 才能释放动态库,elisp 呢?
1、elisp的模块可以认为是el文件或者elc。
2、elisp不像C语言runtime的符号表相对封闭,require/load就是你想要的dlopen。
3、unload-feature类似dlclose的功能。但基本上没人这么用。
4、简言之,多次open,一次close。
Emacs配置文件: https://github.com/Bentusi/emacs.d
- 自由建客
- 帖子: 13468
- 注册时间: 2008-07-30 23:21
- 系统: Debian stable AMD64
Re: 请教 emacs 几个概念
汗!一次 close 就没了!不可理喻!
- tangboyun
- 帖子: 701
- 注册时间: 2009-07-25 1:57
- 联系:
Re: 请教 emacs 几个概念
用eval-after-load避免不必要的elisp包的加载
http://emacser.com/eval-after-load.htm
另:我从来不“卸载动态库回收内存”,最多调整算法少用内存。。。。当然我不写服务器端的程序。
http://emacser.com/eval-after-load.htm
另:我从来不“卸载动态库回收内存”,最多调整算法少用内存。。。。当然我不写服务器端的程序。

https://github.com/tangboyun
http://tangboyun.is-programmer.com/
提问的智慧————Eric Steven Raymond
回答的智慧————Andrew Clarke
吾尝终日而思矣,不如须臾之所学也;吾尝跂而望矣,不如登高之博见也。
急急急标题什么的,最讨厌了!
急急复急急,急急何其多,我生待急急,万事急急急。
http://tangboyun.is-programmer.com/
提问的智慧————Eric Steven Raymond
回答的智慧————Andrew Clarke
吾尝终日而思矣,不如须臾之所学也;吾尝跂而望矣,不如登高之博见也。
急急急标题什么的,最讨厌了!
急急复急急,急急何其多,我生待急急,万事急急急。
- 自由建客
- 帖子: 13468
- 注册时间: 2008-07-30 23:21
- 系统: Debian stable AMD64
Re: 请教 emacs 几个概念
好吧!这是只是一种思维惯性!