emacs-helm / helm

Emacs incremental completion and selection narrowing framework
https://emacs-helm.github.io/helm/
GNU General Public License v3.0
3.37k stars 390 forks source link

Why so often freeze Emacs when try to switch to "helm-mini" buffer? #2089

Closed alexei-28 closed 6 years ago

alexei-28 commented 6 years ago

Windows 10 (64 bit), Emacs 26.1, helm-3.0

Very often when I want to show buffer list. To do this I use (C-x b). But "helm-mini* buffer sometimes open very long time (30 seconds). As result the Emacs is "freeze". As result I need to kill Emacs process from Task Manager. Why this happened?

alphapapa commented 6 years ago

Please follow the bug-reporting instructions in the issue template. As it is, it's virtually impossible to help you or diagnose this problem.

alexei-28 commented 6 years ago

Where I can find bug-reporting instructions? I never used it before. Thanks.

alphapapa commented 6 years ago

It should have appeared automatically when you first filed this issue. Anyway, you can also see it here: https://github.com/emacs-helm/helm/blob/master/.github/issue_template.md

ReneFroger commented 6 years ago

Perhaps you could start again with an empty Emacs configuration file, with only Helm package included. Give us also a link to your Emacs dot-file, so we could reproduce with an empty emacs configuration file with Helm only in re-submitted issue.

Perhaps this could be considered as closed, I cannot reproduce it here on Windows.

alexei-28 commented 6 years ago

Windows 10 (64 bit), Emacs 26.1, helm-3.0.

In my init.el I has about 15 packages. I create simple test. I disable ONLY helm package in my init.el. So in my init.elnow are 14 packages. And the problem is gone. No more wait (sometimes 30 seconds) to open list of buffers in buffer helm-mini. So I guess that the problem is in helm package.

ReneFroger commented 6 years ago

And when you're dsiabling the other 14 packages, and only Helm, then you will don't have same problem probably. They're conflicting with each other, with your settings I guess. Try to run this script in Windows Ubuntu shell: https://github.com/emacs-helm/helm/blob/master/emacs-helm.sh

Please use the format here instead of replying. Otherwise we're not be able to help you further.

alexei-28 commented 6 years ago

You was right. From scratch I install Emacs 26.1. for Windows 10 (64 Bit). Also I install ONLY package helm 3.0 fromMelpa-Stable. And the problem is gone. No more wait while open buffer helm-mini. I test this about week. All work nice. So, as I said before I has about 14 packages. So I will apply packages one by one to try to reproduce the situation when buffer helm-mini open very long time (> 10 seconds).

Here algorithm of testing:

  1. helm + package#1 - test one week.
  2. If OK then apply next package: helm + package#1+ package#2 - test one week.
  3. And so on

Is it a good approach?

Here my init.el

(setq custom-file "~/.emacs.d/custom/emacs-init-custom.el")
(load custom-file)

(add-to-list 'load-path "~/.emacs.d/elpa")
;; UTF-8 as default encoding
(set-language-environment "UTF-8")
;; Use CUA keys (Cut/Past with C-x/C-c/C-v)
(cua-mode t)
;; Enable upcase whole selection text
(put 'upcase-region 'disabled nil)
;; Start maximised (cross-platf)
(add-hook 'window-setup-hook 'toggle-frame-maximized t)

(require 'helm)
(require 'helm-config)
(helm-mode 1)

(load "~/.emacs.d/custom/emacs-init-keybindings.el")
ReneFroger commented 6 years ago

Why one week? Comment out half of your configuration. You can use M-x comment-region to comment out the region of selected text, or with Evil commenter (see emacs.zeef.com). (You can uncomment the region using C-u with the same command. (For convenience, you can bind comment-region to a key.)

Start Emacs. Did you see the same problem? If yes, then the problem is not caused by the part you commented out. If no, then it is.

For the problematic part: Comment out the other part and half of the problematic part. Then see if the problem arises. Repeat #2 and #3, over and over. It doesn't take long: 1/2, 3/4, 7/8, 15/16, 31/32, 63/64, 127/128, 255/256, 511/512, 1023/1024,...

It doesn't matter how big your init file is or how much other code it loads (if the problem is in other code then repeat the same process on that file, etc.).

Please stop posting your whole configuration, you need to solve the problem you might have caused since it's not related to Helm.

Can someone close this issue?

alexei-28 commented 6 years ago

One week because I noticed that this problem (with helm-mini) may appear not immediately, but after 3 days of using helm.

thierryvolpiatto commented 6 years ago

Please describe exactly what you are doing to "switch to helm-mini buffer".

alexei-28 commented 6 years ago

I execute C-x b to open helm-mini

thierryvolpiatto commented 6 years ago

There is a misunderstanding on how to use helm-mini. Apparently you used one time M-x helm-mini and then instead of using again M-x helm-mini when you want to list your buffers, you do C-x b (switch-to-buffer) to open the helm buffer "helm mini"! If you want help here, you have to fill in the Issue template when submitting a new issue and explain clearly what you are doing step by step, this to avoid loosing time trying to understand what you are doing. Feel free to open a new issue if needed, I am closing this one now.

alexei-28 commented 6 years ago

I use C-x b because in my init.el I set:

(global-set-key (kbd "C-x b") 'helm-mini)

alexei-28 commented 6 years ago

I think I found when helm-mini opens very long time

  1. Download pure Emacs 26.1
  2. Install from melpa-stable helm 3.0
  3. So Emacs has only one external package - helm

in my init.el:

(global-set-key (kbd "M-x") 'helm-M-x)
(global-set-key (kbd "C-x b") 'helm-mini)

I test this one week. And... no problem when open helm-mini by C-x b. Nice. After one week I install package dired+ from here https://www.emacswiki.org/emacs/dired%2b.el The package dired+ is not exist in melpa repo. I open about 20 files from local and remote machine. Restart Emacs and now very often when I press C-x b the helm-mini buffer open long time. It's happen not every time when press C-x b, but it happens often.

yantar92 commented 6 years ago

As I remember, dired+ introduces a custom mode-line format with a large number of evals diredp-nb-marked-in-mode-name. helm-mini evaluates mode-lines for every single dired buffer, which makes it incredibly slow in some cases (the mode line evaluates something like (while (and (<= (point) e-pt) (< (point) (point-max))) ... in every mode-line, which is obviously slow for large dired buffers).