yank
1
只用org-mode没编译任何东西,为什么占用了差不多7G内存,还在不停增长.
- savehist-printable 29,798,100,953 98% 自动保存占用这么恐怖?
- timer-event-handler 29,810,292,785 99%
- apply 29,810,163,017 99%
- savehist-autosave 29,798,559,773 98%
- savehist-save 29,798,539,885 98%
+ savehist-printable 29,798,100,953 98%
generate-new-buffer 2,096 0%
+ #<compiled 0x7561e249> 1,056 0%
- which-key–update 6,533,285 0%
- tooltip-timeout 3,778,936 0%
- command-execute 13,430,263 83%
- call-interactively 13,429,207 83%
- funcall-interactively 13,429,207 83%
- counsel-M-x 9,847,848 61%
- ivy-read 9,663,016 60%
- apply 9,663,016 60%
- ivy-posframe–read 9,661,960 60%
- apply 9,661,960 60%
- #<compiled 0x1223a635> 9,661,960 60%
+ ivy-call 7,472,378 46%
+ read-from-minibuffer 1,811,476 11%
+ ivy–reset-state 283,252 1%
+ #<compiled 0x74f966f9> 15,714 0%
+ ivy–update-prompt 1,024 0%
yank
2
`- command-execute 13,430,263 83%
- call-interactively 13,429,207 83%
- funcall-interactively 13,429,207 83%
- counsel-M-x 9,847,848 61%
- ivy-read 9,663,016 60%
- apply 9,663,016 60%
- ivy-posframe–read 9,661,960 60%
- apply 9,661,960 60%
- #<compiled 0x1223a635> 9,661,960 60%
- ivy-call 7,472,378 46%
- counsel-M-x-action 7,472,378 46%
- command-execute 7,472,378 46%
- call-interactively 7,472,378 46%
- funcall-interactively 6,662,671 41%
- profiler-report 6,661,623 41%
- profiler-report-memory 1,578,444 9%
- profiler-report-profile-other-window 1,578,444 9%
- switch-to-buffer-other-window 1,143,353 7%
- profiler-report-setup-buffer 435,091 2%
- profiler-report-cpu 1,288,451 8%
profiler-start 1,048 0%
yank
3
停用posframe相关包解决问题,不知道bug在哪里
XYZ_C
4
我也觉得,用了ivy-posframe后counsel-projectile-rg
或counsel-rg
会很卡,特别是增量搜索的时候卡顿很明显,非常不流畅 但是我有习惯了把completion的窗口放到屏幕中央了,不知道有什么好的解决方法
XYZ_C
6
有想过,但是貌似跟posframe有关,counsel-rg本身很流畅,所以不知道还snail会不会有帮助
我最近也在看posframe的性能问题,这个得请教下 @tumashu 是怎么回事了。
我之前报了一个issue:
1 个赞
这个是 ivy-posframe 导致的问题,还是 posframe 的问题?
XYZ_C
9
我有空尝试看一下,具体是 posframe
还是 ivy-posframe
的问题真不好说。我只有 ivy
和 hydra
用了 posframe。hydra的内容太小而且是固定的,没有感觉到性能问题。但是ivy输入的时候卡顿非常明显。
我猜测是posframe。仔细观察会发现,不管哪个与posframe相关的包第一次启用内存都会上升不少,几兆到几十兆不等。ivy-posframe是使用最频繁,内存占用也是最多的。
如果能搞出一个简单的性能测试用例就好了,用二分法也能找到瓶颈。
如果可以的话,最好用 emacs -Q 测试一下 ivy-posframe, 看看有没有性能问题,也许是和某些包冲突了。
yank
13
估计是和某些包冲突,我最近重新构建了整个ini.el ,也使用了porframe和ivy这些插件,到目前未重新出现这种情况,内存占用几百M.
另,pyim现在有双拼适合的词库吗?默认的basic.dict常用词都打不出了,还有M-x装不了greatdict的包了,用中科大的源.
双拼用全拼得词库,你可以用pyim-dict-manager添加词库文件,看看readme吧,有些介绍
今天看代码,突然想到ivy-posframe是自己单独创建了一个buffer处理,能否直接复用minibuffer呢?这样是否能减少内存和CPU占用从而提高性能?
mini-frame直接接管了read-from-minibuffer,所以所有的命令都可接管,除了ivy还包括icomplete、eval-expression、yes-or-no messages等。
最早看见 mini-frame 的时候,我还和维护者提了一嘴,可以复用 posframe,不过作者没这个意思,本人英语水平也不咋地,也就不了了之了,当时我以为 mini-frame 准备直接使用 child-frame 来获取焦点,我觉得不太可靠,刚刚看了一下它的代码,发现它好像默认也是使用 mini-buffer 来获取焦点,只用 child-frame 来显示,可能和 ivy-posframe 使用类似的思路了。
再请教一个问题,如何让child frame失去焦点后自动隐藏?使用ivy-posframe的时候经常会遇到,无意间切换或者点到其他窗口,但是child frame仍然显示,很是别扭。就像这样,焦点其实在下面的窗口中。