测试结果在10楼 mimalloc结合emacs确实提升了windows上的使用体验(应该没啥用) - #10,来自 junmoxiao
之前看了猫哥发的gc分析,有提到频繁触发gc。如果使用mimalloc这种工具应该能提升性能把。还解决了内存碎片的问题。 特别是在win上用emacs,时不时卡顿。
linux上启用也很简单
LD_PRELOAD=/usr/lib/libmimalloc.so emacs
win上得处理下编译过程
2023-6-28 update
如果程序链接了ucrtbase.dll
,可以通过黑科技直接加载mimalloc 。
使用起来,感觉上速度确实得到了提升。 感兴趣的可以自己做下测试。
windows上的操作方法如下,
1 安装msys2的ucrt版emacs (也可以自己编译,但是得用ucrt的,ucrt的得patch下源码,可以参考msys2的构建脚本https://github.com/msys2/MINGW-packages/tree/master/mingw-w64-emacs
)
pacman -S mingw-w64-ucrt-x86_64-emacs
2 下载mimalloc并用vs编译,会得到 mimalloc-override.dll
和 mimalloc-redirect.dll
,复制到/msys2/ucrt64/bin/
下,和emacs.exe
同级
ide/vs2019/mimalloc.sln
3 使用cff explorer给emacs添加导入表
下载地址 https://down.52pojie.cn/Tools/PEtools/CFF_Explorer.zip
先把 /ucrt/bin/emacs.exe 备份一下,然后用cff打开
import_adder - add - mimalloc-override.dll
选择DllMain - import by name - rebuild import table - 保存,覆盖原文件
然后打开runemacs.exe即可
4 验证是否加载成功,启动emacs之后,打开process explorer,查看emacs进程加载的dll,如下即成功