bug#46202: 28.0.50; project-find-file performance degrades significantly with ede-enable-generic-projects

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

bug#46202: 28.0.50; project-find-file performance degrades significantly with ede-enable-generic-projects

Pankaj Jangid-3

With following lines in init, the performance of project-find-file (C-x
p f) degrades significantly:

(eval-and-compile (require 'ede))
(global-ede-mode +1)
(ede-enable-generic-projects)

If I comment ‘(ede-enable-generic-projects)’ then it is back to normal.

It is reproducible with ‘emacs -Q’.


In GNU Emacs 28.0.50 (build 1, x86_64-apple-darwin20.2.0, NS appkit-2022.20 Version 11.1 (Build 20C69))
 of 2021-01-31 built on mb2.local
Repository revision: 0f2d87716a2cb6fae5ea6719763441c448fe7a74
Repository branch: master
Windowing system distributor 'Apple', version 10.3.2022
System Description:  macOS 11.1

Configured features:
ACL DBUS GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY
KQUEUE NS PDUMPER PNG RSVG THREADS TIFF TOOLKIT_SCROLL_BARS XIM ZLIB

Important settings:
  value of $LANG: en_IN.UTF-8
  locale-coding-system: utf-8-unix

Major mode: ELisp/l

Minor modes in effect:
  shell-dirtrack-mode: t
  electric-pair-mode: t
  display-line-numbers-mode: t
  savehist-mode: t
  global-ede-mode: t
  ede-minor-mode: t
  which-key-mode: t
  override-global-mode: t
  show-paren-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-quote-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t
  hs-minor-mode: t

Load-path shadows:
None found.

Features:
(shadow flyspell ispell ol-eww eww xdg url-queue mm-url ol-rmail ol-mhe
ol-irc ol-info ol-gnus nnselect gnus-search ol-docview doc-view
jka-compr image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m org org-macro
org-footnote org-pcomplete org-list org-faces org-entities noutline
outline org-version ob-plantuml ob-sql ob-css ob-js ob-java ob-C
ob-python python tramp-sh tramp tramp-loaddefs trampver
tramp-integration files-x tramp-compat shell pcomplete ls-lisp ob-R ob
ob-tangle org-src ob-ref ob-lob ob-table ob-exp ob-comint ob-emacs-lisp
ob-core ob-eval ol org-loaddefs emacsbug sort smiley gnus-cite qp
mm-archive mail-extr gnus-async gnus-bcklg gnus-ml hl-line disp-table
utf-7 nndraft nnmh epa-file gnutls network-stream nsm gnus-agent
gnus-srvr gnus-score score-mode nnvirtual nntp gnus-cache .gnus shortdoc
help-fns radix-tree misearch multi-isearch find-dired grep compile
comint ansi-color ebdb-message sendmail ebdb-gnus gnus-msg gnus-art
mm-uu mml2015 mm-view mml-smime smime dig gnus-sum shr kinsoku svg dom
gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap
nnmail mail-source utf7 netrc nnoo parse-time iso8601 gnus-spec gnus-int
gnus-range message rmc puny dired dired-loaddefs rfc822 mml mml-sec epa
derived epg epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231
gmm-utils mailheader gnus-win gnus nnheader gnus-util rmail
rmail-loaddefs rfc2047 rfc2045 ietf-drums text-property-search time-date
mail-utils mm-util mail-prsvr semantic/lex-spp vc-git diff-mode
yasnippet company-oddmuse company-keywords company-etags etags fileloop
generator xref project ring company-gtags company-dabbrev-code
company-dabbrev company-files company-clang company-capf company-cmake
company-semantic company-template company-bbdb company cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
elec-pair display-line-numbers init savehist edmacro kmacro org-table
org-keys org-compat org-macs format-spec ede/generic ede/shell
ede/config semantic/db semantic/util-modes semantic/util semantic pp
semantic/tag semantic/lex semantic/fw mode-local ede/speedbar ede/files
ede ede/detect ede/base ede/auto ede/source eieio-speedbar eieio-custom
wid-edit cedet ebdb-mua ebdb-com crm ebdb-format ebdb mailabbrev
eieio-opt speedbar ezimage dframe find-func eieio-base pcase cal-menu
calendar cal-loaddefs timezone rust-mode rx thingatpt which-key advice
diminish hideshow cl-extra help-mode finder-inf use-package
use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key easy-mmode use-package-core server my-init
avoid paren cus-start cus-load my-util info early-init package easymenu
browse-url url url-proxy url-privacy url-expand url-methods url-history
url-cookie url-domsuf url-util mailcap url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache json subr-x map url-vars seq byte-opt gv bytecomp
byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel term/ns-win ns-win
ucs-normalize mule-util term/common-win tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core term/tty-colors frame minibuffer cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads dbusbind
kqueue cocoa ns lcms2 multi-tty make-network-process emacs)

Memory information:
((conses 16 626025 24354)
 (symbols 48 40688 1)
 (strings 32 167634 11422)
 (string-bytes 1 5272623)
 (vectors 16 65198)
 (vector-slots 8 1134269 87468)
 (floats 8 376 196)
 (intervals 56 1374 0)
 (buffers 984 33))

--
Regards,
Pankaj Jangid

GnuPG Fingerprint: 0B62 7424 3B26 A911 052A DDE6 7C95 6E6F F858 7689



Reply | Threaded
Open this post in threaded view
|

bug#46202: 28.0.50; project-find-file performance degrades significantly with ede-enable-generic-projects

Dmitry Gutov
Hi!

On 31.01.2021 06:38, Pankaj Jangid wrote:
>
> With following lines in init, the performance of project-find-file (C-x
> p f) degrades significantly:
>
> (eval-and-compile (require 'ede))
> (global-ede-mode +1)
> (ede-enable-generic-projects)
>
> If I comment ‘(ede-enable-generic-projects)’ then it is back to normal.

Adding a basic project backend for EDE seems to have been a bet with
little payout (nobody who knows anything about EDE is improving it).

Could you explain how you using EDE and the benefit you get from calling
(ede-enable-generic-projects)?

Would anybody miss EDE <-> project.el integration, do you think?

We could remove it or, I suppose, deprioritize over the VC-based backend.

For a workaround, try:

   (with-eval-after-load 'ede
     (remove-hook 'project-find-functions #'project-try-ede))



Reply | Threaded
Open this post in threaded view
|

bug#46202: 28.0.50; project-find-file performance degrades significantly with ede-enable-generic-projects

Pankaj Jangid-3
Dmitry Gutov <[hidden email]> writes:

> On 01.02.2021 18:26, Pankaj Jangid wrote:
>
>> I was just following the video tutorial from Anand Tamariya for
>> configuring Emacs for Java coding. It suggested EDE. Earlier, when I
>> read about EDE, it was mostly related to C/C++ files. So I didn’t touch
>> at that time.
>> But now when I enabled generic projects, it affected my other
>> workflow. So I disabled it again. I am happy with just the project.el.
>
> Did it have an explanation for which effect
> ede-enable-generic-projects was going to have?

Nope.

>>> For a workaround, try:
>>>
>>>    (with-eval-after-load 'ede
>>>      (remove-hook 'project-find-functions #'project-try-ede))
>>>
>> This workaround did not work.
>
> Hmm. What's your value of project-find-functions?
>
> And which file/package was project-try-ede defined in, if any? If you're

After (ede-enable-generic-projects),

Its value is (project-try-ede project-try-vc)




Reply | Threaded
Open this post in threaded view
|

bug#46202: 28.0.50; project-find-file performance degrades significantly with ede-enable-generic-projects

Dmitry Gutov
On 02.02.2021 05:02, Pankaj Jangid wrote:
>> Did it have an explanation for which effect
>> ede-enable-generic-projects was going to have?
> Nope.

OK, I've moved it to the end of the hook (commit 8358637936).

It shouldn't hurt as a fallback anyway, when there's no VC repository
around.

Thanks for the report. Let us know if you're still having problems after
that.