* Having (too) many files in org-agenda-files @ 2010-09-28 18:45 Sébastien Vauban 2010-09-28 20:19 ` Matt Lundin ` (3 more replies) 0 siblings, 4 replies; 26+ messages in thread From: Sébastien Vauban @ 2010-09-28 18:45 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ Hi, Of course, I have many, many files in Org mode. All files I write (or touch) in fact. Of course, I would like to search through my files at some point in time. I even would like to search through your files at some point in time, I mean through =org-mode/contrib/babel= and =Worg= for example. Hence, I put them in =org-agenda-files=: --8<---------------cut here---------------start------------->8--- ;; set which files to search for TODO entries and scheduled items ;; (avoiding hidden files) (setq org-agenda-files (append (directory-files org-directory t "^[^\\.].*\\.org$") (if (file-exists-p "~/Projects/") (directory-files "~/Projects/" t "^[^\\.].*\\.org$") nil) (if (file-exists-p "~/Public/") (directory-files "~/Public/" t "^[^\\.].*\\.txt$") nil) (if (file-exists-p "~/Public/www.mygooglest.com/source/sva/") (directory-files "~/Public/www.mygooglest.com/source/sva/" t "^[^\\.].*\\.txt$") nil) (if (file-exists-p "~/Examples/Org-scraps/") (directory-files "~/Examples/Org-scraps/" t "^[^\\.].*\\.txt$") nil) (if (file-exists-p "~/Downloads/emacs/site-lisp/org-mode/contrib/babel/") (directory-files "~/Downloads/emacs/site-lisp/org-mode/contrib/babel/" t "^[^\\.].*\\.org$") nil) (if (file-exists-p "~/Downloads/emacs/site-lisp/Worg/") (directory-files "~/Downloads/emacs/site-lisp/Worg/" t "^[^\\.].*\\.org$") nil) )) --8<---------------cut here---------------end--------------->8--- The problem is the load-time of my Emacs, now: --8<---------------cut here---------------start------------->8--- Emacs Init startup time: 221 seconds. --8<---------------cut here---------------end--------------->8--- coming from 20 seconds before the heavy use of Org... with tens of times such lines in my *Messages* buffer: --8<---------------cut here---------------start------------->8--- OVERVIEW Checking for library `filladapt'... +-> Requiring `filladapt' (already loaded) Checking for library `filladapt'... Found Fontifying Axa.org... (regexps............................................) Checking for library `filladapt'... Found Fontifying Axa.org... (regexps.............................................) Checking for library `filladapt'... Found Fontifying Axa.org... (regexps..............................................) Checking for library `filladapt'... Found +-> Requiring `outline-mode-easy-bindings' (already loaded) +-> Requiring `ispell' (already loaded) Evaluate code AFTER HAVING LOADED `flyspell'... [2 times] Starting new Ispell process [en_US] ... Checking for library `filladapt'... +-> Requiring `filladapt' (already loaded) Checking for library `filladapt'... Found --8<---------------cut here---------------end--------------->8--- You'll tell me: not a problem, you do that only once a day, and you use Emacs client/server for the rest of the time. True. A bit, because I sometimes have to restart Emacs for testing a fresh one (not impacted by defvars already defined, or deffaces, etc.). Having to wait almost 4 minutes is a real pain. So, here my comments/questions: - Isn't it possible to delay the fontification/ispell/etc. to when we really display (i.e., pop up) the buffer? I guess this must be a major component of the time this takes. - Couldn't we have 2 vars: =org-agenda-files= for the files you know you want have scanned for the agenda construction, and an extra list such as =org-search-files= for files not containing any dates? Then, some time would have to be taken when =C-c a s=, but not before. And not if you don't search for anything in your Org files during that Emacs session... Any other idea? Best regards, Seb -- Sébastien Vauban _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode-mXXj517/zsQ@public.gmane.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Having (too) many files in org-agenda-files 2010-09-28 18:45 Having (too) many files in org-agenda-files Sébastien Vauban @ 2010-09-28 20:19 ` Matt Lundin 2010-09-29 21:21 ` Sébastien Vauban 2010-09-29 3:39 ` Shelagh Manton ` (2 subsequent siblings) 3 siblings, 1 reply; 26+ messages in thread From: Matt Lundin @ 2010-09-28 20:19 UTC (permalink / raw) To: Sébastien Vauban; +Cc: public-emacs-orgmode-mXXj517/zsQ Sébastien Vauban <wxhgmqzgwmuf-geNee64TY+gS+FvcfC7Uqw@public.gmane.org> writes: > Of course, I have many, many files in Org mode. All files I write (or > touch) in fact. > > Of course, I would like to search through my files at some point in time. > I even would like to search through your files at some point in time, I mean > through =org-mode/contrib/babel= and =Worg= for example. > The drawback of org-mode's plain text format is that org-mode needs to load, parse, and fontify, and preserve in memory all files it queries (i.e., agenda files). Too many agenda files can thus cause a pretty big performance hit (both when loading agenda files and constructing agenda views). To avoid this, I would recommend including only important files in org-agenda-files. Possible solutions for searching other files include: 1. loading the other directories when needed (e.g., through a function that changes the value of org-agenda-files) 2. using the variable org-agenda-text-search-extra-files (see below) 3. searching other directories with external tools (grep, perl script, etc.) > The problem is the load-time of my Emacs, now: > > Emacs Init startup time: 221 seconds. Do you invoke an agenda command in your emacs, such as org-agenda-to-appt? That would cause org-mode to load all org files. > coming from 20 seconds before the heavy use of Org... > > with tens of times such lines in my *Messages* buffer: > > OVERVIEW > Checking for library `filladapt'... > +-> Requiring `filladapt' (already loaded) > Checking for library `filladapt'... Found > Fontifying Axa.org... (regexps............................................) > Checking for library `filladapt'... Found > Fontifying Axa.org... (regexps.............................................) > Checking for library `filladapt'... Found > Fontifying Axa.org... (regexps..............................................) > Checking for library `filladapt'... Found > +-> Requiring `outline-mode-easy-bindings' (already loaded) > +-> Requiring `ispell' (already loaded) > Evaluate code AFTER HAVING LOADED `flyspell'... [2 times] > Starting new Ispell process [en_US] ... > Checking for library `filladapt'... > +-> Requiring `filladapt' (already loaded) > Checking for library `filladapt'... Found It seems that filladapt is causing some of the verbosity (and possible slowness) there. When loading agenda files, my *Messages* buffer only shows: OVERVIEW [29 times] > You'll tell me: not a problem, you do that only once a day, and you > use Emacs client/server for the rest of the time. True. A bit, because > I sometimes have to restart Emacs for testing a fresh one (not > impacted by defvars already defined, or deffaces, etc.). > > Having to wait almost 4 minutes is a real pain. So, here my > comments/questions: > > - Isn't it possible to delay the fontification/ispell/etc. to when we really > display (i.e., pop up) the buffer? I guess this must be a major component > of the time this takes. I imagine the fontification is necessary for the agenda to function properly. Thus, org files are parsed en masse when the agenda is called for the first time. (Hence my question about whether you were calling the agenda from ~/.emacs.) > > - Couldn't we have 2 vars: =org-agenda-files= for the files you know you want > have scanned for the agenda construction, and an extra list such as > =org-search-files= for files not containing any dates? Then, some time > would have to be taken when =C-c a s=, but not before. And not if you don't > search for anything in your Org files during that Emacs session... > This already exists. See org-agenda-text-search-extra-files. Best, Matt ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Having (too) many files in org-agenda-files 2010-09-28 20:19 ` Matt Lundin @ 2010-09-29 21:21 ` Sébastien Vauban 0 siblings, 0 replies; 26+ messages in thread From: Sébastien Vauban @ 2010-09-29 21:21 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ Hi Matt, Matt Lundin wrote: > Sébastien Vauban writes: First thing: no prob' for my name. The reply is important, my name much less... isn't it, Matt (or Mattew? ;-)) >> Of course, I have many, many files in Org mode. All files I write (or >> touch) in fact. >> >> Of course, I would like to search through my files at some point in time. I >> even would like to search through your files at some point in time, I mean >> through =org-mode/contrib/babel= and =Worg= for example. > > The drawback of org-mode's plain text format is that org-mode needs to load, > parse, and fontify, and preserve in memory all files it queries (i.e., > agenda files). Too many agenda files can thus cause a pretty big performance > hit (both when loading agenda files and constructing agenda views). To avoid > this, I would recommend including only important files in org-agenda-files. > Possible solutions for searching other files include: > > 1. loading the other directories when needed (e.g., through a function that > changes the value of org-agenda-files) Good idea. > 2. using the variable org-agenda-text-search-extra-files (see below) In fact, more or less the same as the above... and already foreseen. Nice. > 3. searching other directories with external tools (grep, perl script, etc.) Not really interested by this. I love some much the powerful and very quick search capabilities offered by Org. >> The problem is the load-time of my Emacs, now: >> >> Emacs Init startup time: 221 seconds. > > Do you invoke an agenda command in your emacs, such as org-agenda-to-appt? > That would cause org-mode to load all org files. As seen in my reply to Carsten today, yes, I have an org-agenda-list. I know that it is looking in every pointed file. The problem is that it really takes much time... fontifying and so. >> coming from 20 seconds before the heavy use of Org... >> >> with tens of times such lines in my *Messages* buffer: >> >> OVERVIEW >> Checking for library `filladapt'... >> +-> Requiring `filladapt' (already loaded) >> Checking for library `filladapt'... Found >> Fontifying Axa.org... (regexps............................................) >> Checking for library `filladapt'... Found >> Fontifying Axa.org... (regexps.............................................) >> Checking for library `filladapt'... Found >> Fontifying Axa.org... (regexps..............................................) >> Checking for library `filladapt'... Found >> +-> Requiring `outline-mode-easy-bindings' (already loaded) >> +-> Requiring `ispell' (already loaded) >> Evaluate code AFTER HAVING LOADED `flyspell'... [2 times] >> Starting new Ispell process [en_US] ... >> Checking for library `filladapt'... >> +-> Requiring `filladapt' (already loaded) >> Checking for library `filladapt'... Found > > It seems that filladapt is causing some of the verbosity (and possible > slowness) there. When loading agenda files, my *Messages* buffer only shows: > > OVERVIEW [29 times] OK, I have to tell that, in order to debug some problems, I've changed some basic functions in order to get more verbosity in the Messages buffer. Here they are: --8<---------------cut here---------------start------------->8--- ;; REPLACES ORIGINAL in `C source code' (dumped) ;; redefine require to leave a trace of packages being loaded (if (not (fboundp 'orig-require)) (fset 'orig-require (symbol-function 'require)) (message "The code to redefine `require' should not be loaded twice")) (defvar my-require-depth 0) (defun require (feature &optional filename noerror) "Leave a trace of packages being loaded." (cond ((member feature features) (message "%sRequiring `%s' (already loaded)" (concat (make-string (* 2 my-require-depth) ? ) "+-> ") feature)) (t (message "%sRequiring `%s'" (concat (make-string (* 2 my-require-depth) ? ) "+-> ") feature) (let ((my-require-depth (+ 1 my-require-depth))) (orig-require feature filename noerror)) (message "%sRequiring `%s'...done" (concat (make-string (* 2 my-require-depth) ? ) "+-> ") feature)))) (defvar missing-packages-list nil "List of packages that `try-require' can't find.") ;; attempt to load a feature/library, failing silently (defun try-require (feature) "Attempt to load a library or module. Return true if the library given as argument is successfully loaded. If not, instead of an error, just add the package to a list of missing packages." (condition-case err ;; protected form (progn (message "Checking for library `%s'..." feature) (if (stringp feature) (load-library feature) (require feature)) (message "Checking for library `%s'... Found" feature)) ;; error handler (file-error ; condition (progn (message "Checking for library `%s'... Missing" feature) (add-to-list 'missing-packages-list feature 'append)) nil))) --8<---------------cut here---------------end--------------->8--- >> You'll tell me: not a problem, you do that only once a day, and you use >> Emacs client/server for the rest of the time. True. A bit, because I >> sometimes have to restart Emacs for testing a fresh one (not impacted by >> defvars already defined, or deffaces, etc.). >> >> Having to wait almost 4 minutes is a real pain. So, here my >> comments/questions: >> >> - Isn't it possible to delay the fontification/ispell/etc. to when we >> really display (i.e., pop up) the buffer? I guess this must be a major >> component of the time this takes. > > I imagine the fontification is necessary for the agenda to function > properly. This assumption should be checked. Does parsing really mean fontifying? From what I understood about jit-lock-mode, I'd say no... but... > Thus, org files are parsed en masse when the agenda is called for the first > time. (Hence my question about whether you were calling the agenda from > ~/.emacs.) > >> - Couldn't we have 2 vars: =org-agenda-files= for the files you know you >> want have scanned for the agenda construction, and an extra list such as >> =org-search-files= for files not containing any dates? Then, some time >> would have to be taken when =C-c a s=, but not before. And not if you >> don't search for anything in your Org files during that Emacs session... > > This already exists. See org-agenda-text-search-extra-files. Thanks for this, did not know about that (up to today)... Best regards, Seb -- Sébastien Vauban _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode-mXXj517/zsQ@public.gmane.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Having (too) many files in org-agenda-files 2010-09-28 18:45 Having (too) many files in org-agenda-files Sébastien Vauban 2010-09-28 20:19 ` Matt Lundin @ 2010-09-29 3:39 ` Shelagh Manton 2010-09-29 8:52 ` Sébastien Vauban 2010-09-29 3:56 ` Carsten Dominik 2010-09-29 12:38 ` Matt Lundin 3 siblings, 1 reply; 26+ messages in thread From: Shelagh Manton @ 2010-09-29 3:39 UTC (permalink / raw) To: emacs-orgmode Sébastien Vauban <wxhgmqzgwmuf@spammotel.com> writes: > Hi, > > Of course, I have many, many files in Org mode. All files I write (or touch) > in fact. > > Of course, I would like to search through my files at some point in time. > I even would like to search through your files at some point in time, I mean > through =org-mode/contrib/babel= and =Worg= for example. [snip] > > You'll tell me: not a problem, you do that only once a day, and you use Emacs > client/server for the rest of the time. True. A bit, because I sometimes have > to restart Emacs for testing a fresh one (not impacted by defvars already > defined, or deffaces, etc.). > > Having to wait almost 4 minutes is a real pain. So, here my > comments/questions: > > - Isn't it possible to delay the fontification/ispell/etc. to when we really > display (i.e., pop up) the buffer? I guess this must be a major component > of the time this takes. > > - Couldn't we have 2 vars: =org-agenda-files= for the files you know you want > have scanned for the agenda construction, and an extra list such as > =org-search-files= for files not containing any dates? Then, some time > would have to be taken when =C-c a s=, but not before. And not if you don't > search for anything in your Org files during that Emacs session... > > Any other idea? I use the jit-lock package that comes with emacs. "Stealth fontifying" It makes font-lock only happen after the buffer is loaded and when you are not doing anything else. You can access the variables through customize-group RET jit-lock. It may be helpful here. Shelagh > > Best regards, > Seb ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Having (too) many files in org-agenda-files 2010-09-29 3:39 ` Shelagh Manton @ 2010-09-29 8:52 ` Sébastien Vauban 0 siblings, 0 replies; 26+ messages in thread From: Sébastien Vauban @ 2010-09-29 8:52 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ Hi Shelagh, Shelagh Manton wrote: > Sébastien Vauban <wxhgmqzgwmuf-geNee64TY+gS+FvcfC7Uqw@public.gmane.org> writes: > I use the jit-lock package that comes with emacs. "Stealth fontifying" > > It makes font-lock only happen after the buffer is loaded and when you are > not doing anything else. I just checked. The following is default: --8<---------------cut here---------------start------------->8--- (setq font-lock-support-mode 'jit-lock-mode) --8<---------------cut here---------------end--------------->8--- hence, I also have it. > You can access the variables through customize-group RET jit-lock. It may be > helpful here. As you can see, I did not change anything: --8<---------------cut here---------------start------------->8--- Editing a setting changes only the text in this buffer. To apply your changes, use the Save or Set buttons. Saving a change normally works by editing your init file. For details, see Saving Customizations in the Emacs manual. Operate on all settings in this buffer that are not marked HIDDEN: Set for current session Save for future sessions Undo edits Reset to saved Erase customizations Exit Parent groups: Font Lock Parent group documentation: Elisp Manual and Emacs Manual. /- Jit Lock group: Font Lock support mode to fontify just-in-time.-------\ State: visible group members are all at standard values. Jit Lock Chunk Size: Hide Value 500 State: STANDARD. Jit-lock fontifies chunks of at most this many characters at a time. More Jit Lock Stealth Time: Hide Value Value Menu never State: STANDARD. Time in seconds to wait before beginning stealth fontification. More Jit Lock Stealth Nice: Hide Value Value Menu seconds: 0.5 State: STANDARD. Time in seconds to pause between chunks of stealth fontification. More Jit Lock Stealth Load: Hide Value Value Menu load: 200 State: STANDARD. Load in percentage above which stealth fontification is suspended. More Jit Lock Stealth Verbose: Hide Value Toggle off (nil) State: STANDARD. If non-nil, means stealth fontification should show status messages. Jit Lock Contextually: Hide Value Value Menu syntax-driven State: STANDARD. If non-nil, means fontification should be syntactically true. More Jit Lock Context Time: Hide Value 0.5 State: STANDARD. Idle time after which text is contextually refontified, if applicable. Jit Lock Defer Time: Hide Value Value Menu never State: STANDARD. Idle time after which deferred fontification should take place. More \- Jit Lock group end --------------------------------------------------/ --8<---------------cut here---------------end--------------->8--- Though, I find some values quite weird: - jit-lock-stealth-time = nil (never) - jit-lock-stealth-load = 200 (%!?) - jit-lock-defer-time = nil (never) Best regards, Seb -- Sébastien Vauban _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode-mXXj517/zsQ@public.gmane.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Having (too) many files in org-agenda-files 2010-09-28 18:45 Having (too) many files in org-agenda-files Sébastien Vauban 2010-09-28 20:19 ` Matt Lundin 2010-09-29 3:39 ` Shelagh Manton @ 2010-09-29 3:56 ` Carsten Dominik 2010-09-29 8:32 ` Sébastien Vauban 2010-09-30 13:37 ` Sébastien Vauban 2010-09-29 12:38 ` Matt Lundin 3 siblings, 2 replies; 26+ messages in thread From: Carsten Dominik @ 2010-09-29 3:56 UTC (permalink / raw) To: Sébastien Vauban; +Cc: emacs-orgmode Hi Sebastian, 4 minutes of startup time is entirely unacceptable. And I think you need to identify what is causing this. First of all, unless you are having to totally old Version of Emacs, fontification at display time is standard, I believe. You must be doing something strange, like forcing Emacs to load all those files in org-agenda-files for example, and maybe forcing global fontification for each file or so. About a separate variable for search file, that does of cause exist: org-agenda-text-search-extra-files - Carsten On Sep 28, 2010, at 8:45 PM, Sébastien Vauban wrote: > Hi, > > Of course, I have many, many files in Org mode. All files I write > (or touch) > in fact. > > Of course, I would like to search through my files at some point in > time. > I even would like to search through your files at some point in > time, I mean > through =org-mode/contrib/babel= and =Worg= for example. > > Hence, I put them in =org-agenda-files=: > > --8<---------------cut here---------------start------------->8--- > ;; set which files to search for TODO entries and scheduled items > ;; (avoiding hidden files) > (setq org-agenda-files > (append (directory-files org-directory t "^[^\\.].*\\.org$") > (if (file-exists-p "~/Projects/") > (directory-files "~/Projects/" t "^[^\\.].*\\.org$") > nil) > (if (file-exists-p "~/Public/") > (directory-files "~/Public/" t "^[^\\.].*\\.txt$") > nil) > (if (file-exists-p "~/Public/www.mygooglest.com/source/sva/ > ") > (directory-files "~/Public/www.mygooglest.com/source/sva/ > " t "^[^\\.].*\\.txt$") > nil) > (if (file-exists-p "~/Examples/Org-scraps/") > (directory-files "~/Examples/Org-scraps/" t "^[^\ > \.].*\\.txt$") > nil) > (if (file-exists-p "~/Downloads/emacs/site-lisp/org- > mode/contrib/babel/") > (directory-files "~/Downloads/emacs/site-lisp/org- > mode/contrib/babel/" t "^[^\\.].*\\.org$") > nil) > (if (file-exists-p "~/Downloads/emacs/site-lisp/Worg/") > (directory-files "~/Downloads/emacs/site-lisp/ > Worg/" t "^[^\\.].*\\.org$") > nil) > )) > --8<---------------cut here---------------end--------------->8--- > > The problem is the load-time of my Emacs, now: > > --8<---------------cut here---------------start------------->8--- > Emacs Init startup time: 221 seconds. > --8<---------------cut here---------------end--------------->8--- > > coming from 20 seconds before the heavy use of Org... > > with tens of times such lines in my *Messages* buffer: > > --8<---------------cut here---------------start------------->8--- > OVERVIEW > Checking for library `filladapt'... > +-> Requiring `filladapt' (already loaded) > Checking for library `filladapt'... Found > Fontifying Axa.org... > (regexps............................................) > Checking for library `filladapt'... Found > Fontifying Axa.org... > (regexps.............................................) > Checking for library `filladapt'... Found > Fontifying Axa.org... > (regexps..............................................) > Checking for library `filladapt'... Found > +-> Requiring `outline-mode-easy-bindings' (already loaded) > +-> Requiring `ispell' (already loaded) > Evaluate code AFTER HAVING LOADED `flyspell'... [2 times] > Starting new Ispell process [en_US] ... > Checking for library `filladapt'... > +-> Requiring `filladapt' (already loaded) > Checking for library `filladapt'... Found > --8<---------------cut here---------------end--------------->8--- > > You'll tell me: not a problem, you do that only once a day, and you > use Emacs > client/server for the rest of the time. True. A bit, because I > sometimes have > to restart Emacs for testing a fresh one (not impacted by defvars > already > defined, or deffaces, etc.). > > Having to wait almost 4 minutes is a real pain. So, here my > comments/questions: > > - Isn't it possible to delay the fontification/ispell/etc. to when > we really > display (i.e., pop up) the buffer? I guess this must be a major > component > of the time this takes. > > - Couldn't we have 2 vars: =org-agenda-files= for the files you know > you want > have scanned for the agenda construction, and an extra list such as > =org-search-files= for files not containing any dates? Then, some > time > would have to be taken when =C-c a s=, but not before. And not if > you don't > search for anything in your Org files during that Emacs session... > > Any other idea? > > Best regards, > Seb > > -- > Sébastien Vauban > > > _______________________________________________ > Emacs-orgmode mailing list > Please use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Having (too) many files in org-agenda-files 2010-09-29 3:56 ` Carsten Dominik @ 2010-09-29 8:32 ` Sébastien Vauban 2010-09-29 13:19 ` Carsten Dominik 2010-09-30 13:37 ` Sébastien Vauban 1 sibling, 1 reply; 26+ messages in thread From: Sébastien Vauban @ 2010-09-29 8:32 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ Hi Carsten, Carsten Dominik wrote: > On Sep 28, 2010, at 8:45 PM, Sébastien Vauban wrote: >> Of course, I have many, many files in Org mode. All files I write (or touch) >> in fact. >> >> Of course, I would like to search through my files at some point in time. I >> even would like to search through your files at some point in time, I mean >> through =org-mode/contrib/babel= and =Worg= for example. Hence, I put them >> in =org-agenda-files=. >> >> The problem is the load-time of my Emacs, now 221 seconds, coming from 20 >> seconds before the heavy use of Org... >> >> You'll tell me: not a problem, you do that only once a day, and you use >> Emacs client/server for the rest of the time. True. A bit, because I >> sometimes have to restart Emacs for testing a fresh one (not impacted by >> defvars already defined, or deffaces, etc.). >> >> Having to wait almost 4 minutes is a real pain. So, here my >> comments/questions: >> >> - Isn't it possible to delay the fontification/ispell/etc. to when we >> really display (i.e., pop up) the buffer? I guess this must be a major >> component of the time this takes. >> >> - Couldn't we have 2 vars: =org-agenda-files= for the files you know you >> want have scanned for the agenda construction, and an extra list such as >> =org-search-files= for files not containing any dates? Then, some time >> would have to be taken when =C-c a s=, but not before. And not if you >> don't search for anything in your Org files during that Emacs session... > > 4 minutes of startup time is entirely unacceptable. And I think > you need to identify what is causing this. > > First of all, unless you are having to totally old Version of Emacs, Nope. GNU Emacs 23.1.1 (i486-pc-linux-gnu, GTK+ Version 2.20.0) of 2010-03-29 on rothera, modified by Debian > fontification at display time is standard, I believe. It seems not, from what I see in the Messages buffer. I really don't have the impression of having fiddled with that, really. > You must be doing something strange, like forcing Emacs to load > all those files in org-agenda-files for example, That, yes! I should have explicitly written it, but -- yes -- I do have: --8<---------------cut here---------------start------------->8--- (org-agenda-list) --8<---------------cut here---------------end--------------->8--- in my .emacs. > and maybe forcing global fontification for each file or so. To repeat myself, no to that question. But ispell and flyspell are called for Org files. Maybe there are interactions? > About a separate variable for search file, that does of cause exist: > org-agenda-text-search-extra-files Of course! Doing this: --8<---------------cut here---------------start------------->8--- (setq org-agenda-files (append (directory-files org-directory t "^[^\\.].*\\.org$") (if (file-exists-p "~/Projects/") (directory-files "~/Projects/" t "^[^\\.].*\\.org$") nil))) (setq org-agenda-text-search-extra-files (append (if (file-exists-p "~/Public/") (directory-files "~/Public/" t "^[^\\.].*\\.txt$") nil) (if (file-exists-p "~/Public/www.mygooglest.com/source/sva/") (directory-files "~/Public/www.mygooglest.com/source/sva/" t "^[^\\.].*\\.txt$") nil) (if (file-exists-p "~/Examples/Org-scraps/") (directory-files "~/Examples/Org-scraps/" t "^[^\\.].*\\.txt$") nil) (if (file-exists-p "~/Downloads/emacs/site-lisp/org-mode/contrib/babel/") (directory-files "~/Downloads/emacs/site-lisp/org-mode/contrib/babel/" t "^[^\\.].*\\.org$") nil) (if (file-exists-p "~/Downloads/emacs/site-lisp/Worg/") (directory-files "~/Downloads/emacs/site-lisp/Worg/" t "^[^\\.].*\\.org$") nil) )) --8<---------------cut here---------------end--------------->8--- reduces my load time from 221 seconds down to 92 seconds. Already a huge diff! Thanks... Best regards, Seb -- Sébastien Vauban _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode-mXXj517/zsQ@public.gmane.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Re: Having (too) many files in org-agenda-files 2010-09-29 8:32 ` Sébastien Vauban @ 2010-09-29 13:19 ` Carsten Dominik 2010-09-29 22:20 ` Sébastien Vauban 0 siblings, 1 reply; 26+ messages in thread From: Carsten Dominik @ 2010-09-29 13:19 UTC (permalink / raw) To: Sébastien Vauban; +Cc: emacs-orgmode On Sep 29, 2010, at 10:32 AM, Sébastien Vauban wrote: > Hi Carsten, > > Carsten Dominik wrote: >> On Sep 28, 2010, at 8:45 PM, Sébastien Vauban wrote: >>> Of course, I have many, many files in Org mode. All files I write >>> (or touch) >>> in fact. >>> >>> Of course, I would like to search through my files at some point >>> in time. I >>> even would like to search through your files at some point in >>> time, I mean >>> through =org-mode/contrib/babel= and =Worg= for example. Hence, I >>> put them >>> in =org-agenda-files=. >>> >>> The problem is the load-time of my Emacs, now 221 seconds, coming >>> from 20 >>> seconds before the heavy use of Org... >>> >>> You'll tell me: not a problem, you do that only once a day, and >>> you use >>> Emacs client/server for the rest of the time. True. A bit, because I >>> sometimes have to restart Emacs for testing a fresh one (not >>> impacted by >>> defvars already defined, or deffaces, etc.). >>> >>> Having to wait almost 4 minutes is a real pain. So, here my >>> comments/questions: >>> >>> - Isn't it possible to delay the fontification/ispell/etc. to when >>> we >>> really display (i.e., pop up) the buffer? I guess this must be a >>> major >>> component of the time this takes. >>> >>> - Couldn't we have 2 vars: =org-agenda-files= for the files you >>> know you >>> want have scanned for the agenda construction, and an extra list >>> such as >>> =org-search-files= for files not containing any dates? Then, some >>> time >>> would have to be taken when =C-c a s=, but not before. And not if >>> you >>> don't search for anything in your Org files during that Emacs >>> session... >> >> 4 minutes of startup time is entirely unacceptable. And I think >> you need to identify what is causing this. >> >> First of all, unless you are having to totally old Version of Emacs, > > Nope. GNU Emacs 23.1.1 (i486-pc-linux-gnu, GTK+ Version 2.20.0) > of 2010-03-29 on rothera, modified by Debian > > >> fontification at display time is standard, I believe. > > It seems not, from what I see in the Messages buffer. I really don't > have the > impression of having fiddled with that, really. > > >> You must be doing something strange, like forcing Emacs to load >> all those files in org-agenda-files for example, > > That, yes! I should have explicitly written it, but -- yes -- I do > have: > > --8<---------------cut here---------------start------------->8--- > (org-agenda-list) > --8<---------------cut here---------------end--------------->8--- > > in my .emacs. > > >> and maybe forcing global fontification for each file or so. > > To repeat myself, no to that question. But ispell and flyspell are > called for > Org files. Maybe there are interactions? > > >> About a separate variable for search file, that does of cause exist: >> org-agenda-text-search-extra-files > > Of course! > > Doing this: > > --8<---------------cut here---------------start------------->8--- > (setq org-agenda-files > (append (directory-files org-directory t "^[^\\.].*\\.org$") > (if (file-exists-p "~/Projects/") > (directory-files "~/Projects/" t "^[^\\.].*\\.org$") > nil))) > > (setq org-agenda-text-search-extra-files > (append > (if (file-exists-p "~/Public/") > (directory-files "~/Public/" t "^[^\\.].*\\.txt$") > nil) > (if (file-exists-p "~/Public/www.mygooglest.com/source/sva/ > ") > (directory-files "~/Public/www.mygooglest.com/source/sva/ > " t "^[^\\.].*\\.txt$") > nil) > (if (file-exists-p "~/Examples/Org-scraps/") > (directory-files "~/Examples/Org-scraps/" t "^[^\ > \.].*\\.txt$") > nil) > (if (file-exists-p "~/Downloads/emacs/site-lisp/org- > mode/contrib/babel/") > (directory-files "~/Downloads/emacs/site-lisp/org- > mode/contrib/babel/" t "^[^\\.].*\\.org$") > nil) > (if (file-exists-p "~/Downloads/emacs/site-lisp/Worg/") > (directory-files "~/Downloads/emacs/site-lisp/ > Worg/" t "^[^\\.].*\\.org$") > nil) > )) > --8<---------------cut here---------------end--------------->8--- > > reduces my load time from 221 seconds down to 92 seconds. Already a > huge diff! Still bad though. I am wondering what is causing the fontification message. I do not get this, so it must be something in your setup. You should try to find out when this is happening and why. Also, you might consider to remove (org-agenda-list) from .emacs. I think it is pretty much always a bad idea to put a command like this into your startup. Just make it a habit to call it early after starting Emacs. It also seems to me you some of the extra packages might be activated several times in each file. One possible reason could be that you have put the code to turn them on into several hooks like text-mode-hook, outline-mode-hook, and org-mode-hook. Turning on org-mode will first run text-mode-hook, then outline-mode-hook, then org-mode-hook ..... Maybe you are also calling font-lock-fontify-buffer explicitly in one of your hooks? Hope some of this helps. If not, let me see you full configuration - maybe I can spot something else. - Carsten ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Having (too) many files in org-agenda-files 2010-09-29 13:19 ` Carsten Dominik @ 2010-09-29 22:20 ` Sébastien Vauban 2010-09-30 11:24 ` Carsten Dominik 0 siblings, 1 reply; 26+ messages in thread From: Sébastien Vauban @ 2010-09-29 22:20 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ Hi Carsten, Carsten Dominik wrote: > On Sep 29, 2010, at 10:32 AM, Sébastien Vauban wrote: >> Carsten Dominik wrote: >>> On Sep 28, 2010, at 8:45 PM, Sébastien Vauban wrote: >>>> Of course, I have many, many files in Org mode. All files I write (or >>>> touch) in fact. >>>> >>>> Of course, I would like to search through my files at some point in time. >>>> The problem is the load-time of my Emacs, now 221 seconds, coming from 20 >>>> seconds before the heavy use of Org... >>> >>> 4 minutes of startup time is entirely unacceptable. And I think you need >>> to identify what is causing this. >>> >>> fontification at display time is standard, I believe. >> >> It seems not, from what I see in the Messages buffer. I really don't have >> the impression of having fiddled with that, really. >>> You must be doing something strange [...] maybe forcing global >>> fontification for each file or so. >> >> To repeat myself, no to that question. But ispell and flyspell are called >> for Org files. Maybe there are interactions? >> >> [Using org-agenda-text-search-extra-files] reduces my load time from 221 >> seconds down to 92 seconds. Already a huge diff! > > Still bad though. I am wondering what is causing the fontification message. > I do not get this, so it must be something in your setup. You should try to > find out when this is happening and why. You've seen, from my reply to Matt, why my *Messages* buffer is more verbose than yours. It's on purpose, just to be able to figure out more easily what's going on. Though, I don't have yet... > Also, you might consider to remove (org-agenda-list) from .emacs. I think it > is pretty much always a bad idea to put a command like this into your > startup. Just make it a habit to call it early after starting Emacs. Honestly, that would not change that much. Having to wait 92 seconds at startup, or a long time just a few minutes later has the same impact for me. And: don't try to make me stop using Org ;-)) > It also seems to me you some of the extra packages might be activated > several times in each file. One possible reason could be that you have put > the code to turn them on into several hooks like text-mode-hook, > outline-mode-hook, and org-mode-hook. Turning on org-mode will first run > text-mode-hook, then outline-mode-hook, then org-mode-hook ..... Maybe you > are also calling font-lock-fontify-buffer explicitly in one of your hooks? The only fontification customs that I do are here: --8<---------------cut here---------------start------------->8--- ;; special words (setq keywords-critical-pattern "\\(BUGS\\|FIXME\\|TODO\\|todo\\|XXX\\|[Ee][Rr][Rr][Oo][Rr]\\|[Mm][Ii][Ss][Ss][Ii][Nn][Gg]\\|[Ii][Nn][Vv][Aa][Ll][Ii][Dd]\\|[Ff][Aa][Ii][Ll][Ee][Dd]\\|[Cc][Oo][Rr][Rr][Uu][Pp][Tt][Ee][Dd]\\)") (make-face 'keywords-critical) (GNUEmacs (set-face-attribute 'keywords-critical nil :foreground "red" :background "yellow" :weight 'bold)) (setq keywords-org-critical-pattern "\\(BUGS\\|FIXME\\|XXX\\|[^*] TODO\\|[Ee][Rr][Rr][Oo][Rr]\\|[Mm][Ii][Ss][Ss][Ii][Nn][Gg]\\|[Ii][Nn][Vv][Aa][Ll][Ii][Dd]\\|[Ff][Aa][Ii][Ll][Ee][Dd]\\|[Cc][Oo][Rr][Rr][Uu][Pp][Tt][Ee][Dd]\\)") ; smaller subset of keywords for ensuring no conflict with Org mode TODO keywords ;; FIXME Highlighting all special keywords but "TODO" in Org mode is already a ;; good step. Though, a nicer integration would be that "TODO" strings in the ;; headings are not touched by this code, and that only "TODO" strings in the ;; text body would be. Don't know (yet) how to do that... (make-face 'keywords-org-critical) (GNUEmacs (set-face-attribute 'keywords-org-critical nil :foreground "red" :background "yellow" :weight 'bold)) (setq keywords-normal-pattern "\\([Ww][Aa][Rr][Nn][Ii][Nn][Gg]\\)") (make-face 'keywords-normal) (GNUEmacs (set-face-attribute 'keywords-normal nil :foreground "magenta2" :background "yellow")) ;; set up highlighting of special words for proper selected major modes only (dolist (mode '(fundamental-mode svn-log-view-mode text-mode)) ; no interference with Org mode (which derives from text-mode) (font-lock-add-keywords mode `((,keywords-critical-pattern 1 'keywords-critical prepend) (,keywords-normal-pattern 1 'keywords-normal prepend)))) ;; set up highlighting of special words for Org mode only (dolist (mode '(org-mode)) (font-lock-add-keywords mode `((,keywords-org-critical-pattern 1 'keywords-org-critical prepend) (,keywords-normal-pattern 1 'keywords-normal prepend)))) ;; add fontification patterns (even in comments) to a selected major mode ;; *and* all major modes derived from it (defun fontify-keywords () (interactive) (font-lock-add-keywords nil `((,keywords-critical-pattern 1 'keywords-critical prepend) (,keywords-normal-pattern 1 'keywords-normal prepend)))) ;; set up highlighting of special words for selected major modes *and* all ;; major modes derived from them (dolist (hook '(c++-mode-hook c-mode-hook change-log-mode-hook cperl-mode-hook css-mode-hook emacs-lisp-mode-hook html-mode-hook java-mode-hook latex-mode-hook lisp-mode-hook makefile-mode-hook message-mode-hook php-mode-hook python-mode-hook sh-mode-hook shell-mode-hook ssh-config-mode-hook)) (add-hook hook 'fontify-keywords)) --8<---------------cut here---------------end--------------->8--- The goal is to highlight words such as FIXME, WARNING, XXX, TODO in as many files as possible. For Org, a small custom (of the custom) is done in order not to catch all TODO words: the TODO words in headlines (i.e., preceded by `* ') are *not* highlighted. They are well highlighted when found in other portions of (normal) text. Other custom: --8<---------------cut here---------------start------------->8--- ;; highlight columns 78 to 80 in some modes (when (try-require 'column-marker) (dolist (hook '(emacs-lisp-mode-hook cperl-mode-hook shell-mode-hook text-mode-hook change-log-mode-hook makefile-mode-hook message-mode-hook texinfo-mode-hook)) (add-hook hook (lambda () (interactive) (column-marker-1 78) (column-marker-2 79) (column-marker-3 80)))) --8<---------------cut here---------------end--------------->8--- for getting markers in columns 78 to 80, showing me I'm good for a `M-q'... I've done multiple tests, now: - with none of the 2 above sets of customs - with the 1st custom disabled, and the column-marker one enabled - with both enabled Times observed (in seconds): | | no highlight | column marker only | all highlights | |------+--------------+--------------------+----------------| | | 63 | 82 | 91 | | | 65 | 84 | 96 | | | 76 | 100 | 130 | |------+--------------+--------------------+----------------| | mean | 68 | 89 | 106 | (note that times are really not that stable, while I always launched Emacs in the same conditions, without doing anything else during that time!) So, the above 2 sets of customs have a real impact on the load time. But I'm still unsure how I have to change all of the above snippets of code, in order to keep the same functionality, but without the time delays when Emacs starts up... > Hope some of this helps. If not, let me see you full configuration - maybe I > can spot something else. My .emacs file is there: http://www.mygooglest.com/sva/emacs-init-sva.el Though it's well documented, it's not a tiny one... But very well structured, so quite easy to find stuff related to each other. I'm always interested by any comment... Best regards, Seb -- Sébastien Vauban _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode-mXXj517/zsQ@public.gmane.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Re: Having (too) many files in org-agenda-files 2010-09-29 22:20 ` Sébastien Vauban @ 2010-09-30 11:24 ` Carsten Dominik 2010-09-30 11:53 ` Sébastien Vauban 0 siblings, 1 reply; 26+ messages in thread From: Carsten Dominik @ 2010-09-30 11:24 UTC (permalink / raw) To: Sébastien Vauban; +Cc: emacs-orgmode On Sep 30, 2010, at 12:20 AM, Sébastien Vauban wrote: > Hi Carsten, > > Carsten Dominik wrote: >> On Sep 29, 2010, at 10:32 AM, Sébastien Vauban wrote: >>> Carsten Dominik wrote: >>>> On Sep 28, 2010, at 8:45 PM, Sébastien Vauban wrote: >>>>> Of course, I have many, many files in Org mode. All files I >>>>> write (or >>>>> touch) in fact. >>>>> >>>>> Of course, I would like to search through my files at some point >>>>> in time. >>>>> The problem is the load-time of my Emacs, now 221 seconds, >>>>> coming from 20 >>>>> seconds before the heavy use of Org... >>>> >>>> 4 minutes of startup time is entirely unacceptable. And I think >>>> you need >>>> to identify what is causing this. >>>> >>>> fontification at display time is standard, I believe. >>> >>> It seems not, from what I see in the Messages buffer. I really >>> don't have >>> the impression of having fiddled with that, really. > >>>> You must be doing something strange [...] maybe forcing global >>>> fontification for each file or so. >>> >>> To repeat myself, no to that question. But ispell and flyspell are >>> called >>> for Org files. Maybe there are interactions? >>> >>> [Using org-agenda-text-search-extra-files] reduces my load time >>> from 221 >>> seconds down to 92 seconds. Already a huge diff! >> >> Still bad though. I am wondering what is causing the fontification >> message. >> I do not get this, so it must be something in your setup. You >> should try to >> find out when this is happening and why. > > You've seen, from my reply to Matt, why my *Messages* buffer is more > verbose > than yours. It's on purpose, just to be able to figure out more > easily what's > going on. Though, I don't have yet... > > >> Also, you might consider to remove (org-agenda-list) from .emacs. I >> think it >> is pretty much always a bad idea to put a command like this into your >> startup. Just make it a habit to call it early after starting Emacs. > > Honestly, that would not change that much. Having to wait 92 seconds > at > startup, or a long time just a few minutes later has the same impact > for me. > And: don't try to make me stop using Org ;-)) :-) The reason why I am suggesting to remove this command is more that it make emacs more usable for command line usage etc. Furthermore, you are adding quite a bit to font-lock, but I don't see why it should be so slow. My Emacs starts up in 4 seconds at most. When I create an agenda, I am talking 1 second to maybe 2. I have about 10 files contributing to the agenda. - Carsten > > >> It also seems to me you some of the extra packages might be activated >> several times in each file. One possible reason could be that you >> have put >> the code to turn them on into several hooks like text-mode-hook, >> outline-mode-hook, and org-mode-hook. Turning on org-mode will >> first run >> text-mode-hook, then outline-mode-hook, then org-mode-hook ..... >> Maybe you >> are also calling font-lock-fontify-buffer explicitly in one of your >> hooks? > > The only fontification customs that I do are here: > > --8<---------------cut here---------------start------------->8--- > ;; special words > (setq keywords-critical-pattern > "\\(BUGS\\|FIXME\\|TODO\\|todo\\|XXX\\|[Ee][Rr][Rr][Oo][Rr]\\| > [Mm][Ii][Ss][Ss][Ii][Nn][Gg]\\|[Ii][Nn][Vv][Aa][Ll][Ii][Dd]\\|[Ff] > [Aa][Ii][Ll][Ee][Dd]\\|[Cc][Oo][Rr][Rr][Uu][Pp][Tt][Ee][Dd]\\)") > (make-face 'keywords-critical) > (GNUEmacs (set-face-attribute 'keywords-critical nil :foreground > "red" :background "yellow" :weight 'bold)) > > (setq keywords-org-critical-pattern > "\\(BUGS\\|FIXME\\|XXX\\|[^*] TODO\\|[Ee][Rr][Rr][Oo][Rr]\\|[Mm] > [Ii][Ss][Ss][Ii][Nn][Gg]\\|[Ii][Nn][Vv][Aa][Ll][Ii][Dd]\\|[Ff][Aa] > [Ii][Ll][Ee][Dd]\\|[Cc][Oo][Rr][Rr][Uu][Pp][Tt][Ee][Dd]\\)") > ; smaller subset of keywords for > ensuring no conflict with Org mode TODO keywords > > ;; FIXME Highlighting all special keywords but "TODO" in Org mode is > already a > ;; good step. Though, a nicer integration would be that "TODO" > strings in the > ;; headings are not touched by this code, and that only "TODO" > strings in the > ;; text body would be. Don't know (yet) how to do that... > (make-face 'keywords-org-critical) > (GNUEmacs (set-face-attribute 'keywords-org-critical nil :foreground > "red" :background "yellow" :weight 'bold)) > > (setq keywords-normal-pattern "\\([Ww][Aa][Rr][Nn][Ii][Nn][Gg]\\)") > (make-face 'keywords-normal) > (GNUEmacs (set-face-attribute 'keywords-normal nil :foreground > "magenta2" :background "yellow")) > > ;; set up highlighting of special words for proper selected major > modes only > (dolist (mode '(fundamental-mode > svn-log-view-mode > text-mode)) ; no interference with Org mode (which > derives from text-mode) > (font-lock-add-keywords mode > `((,keywords-critical-pattern 1 'keywords- > critical prepend) > (,keywords-normal-pattern 1 'keywords- > normal prepend)))) > > ;; set up highlighting of special words for Org mode only > (dolist (mode '(org-mode)) > (font-lock-add-keywords mode > `((,keywords-org-critical-pattern 1 > 'keywords-org-critical prepend) > (,keywords-normal-pattern 1 'keywords- > normal prepend)))) > > ;; add fontification patterns (even in comments) to a selected major > mode > ;; *and* all major modes derived from it > (defun fontify-keywords () > (interactive) > (font-lock-add-keywords nil > `((,keywords-critical-pattern 1 'keywords- > critical prepend) > (,keywords-normal-pattern 1 'keywords- > normal prepend)))) > > ;; set up highlighting of special words for selected major modes > *and* all > ;; major modes derived from them > (dolist (hook '(c++-mode-hook c-mode-hook change-log-mode-hook cperl- > mode-hook css-mode-hook > emacs-lisp-mode-hook > html-mode-hook > java-mode-hook > latex-mode-hook lisp-mode-hook > makefile-mode-hook message-mode-hook > php-mode-hook python-mode-hook > sh-mode-hook shell-mode-hook ssh-config-mode-hook)) > (add-hook hook 'fontify-keywords)) > --8<---------------cut here---------------end--------------->8--- > > The goal is to highlight words such as FIXME, WARNING, XXX, TODO in > as many > files as possible. > > For Org, a small custom (of the custom) is done in order not to > catch all TODO > words: the TODO words in headlines (i.e., preceded by `* ') are *not* > highlighted. > > They are well highlighted when found in other portions of (normal) > text. > > Other custom: > > --8<---------------cut here---------------start------------->8--- > ;; highlight columns 78 to 80 in some modes > (when (try-require 'column-marker) > (dolist (hook '(emacs-lisp-mode-hook > cperl-mode-hook > shell-mode-hook > text-mode-hook > change-log-mode-hook > makefile-mode-hook > message-mode-hook > texinfo-mode-hook)) > (add-hook hook (lambda () > (interactive) > (column-marker-1 78) > (column-marker-2 79) > (column-marker-3 80)))) > --8<---------------cut here---------------end--------------->8--- > > for getting markers in columns 78 to 80, showing me I'm good for a > `M-q'... > > I've done multiple tests, now: > > - with none of the 2 above sets of customs > - with the 1st custom disabled, and the column-marker one enabled > - with both enabled > > Times observed (in seconds): > > | | no highlight | column marker only | all highlights | > |------+--------------+--------------------+----------------| > | | 63 | 82 | 91 | > | | 65 | 84 | 96 | > | | 76 | 100 | 130 | > |------+--------------+--------------------+----------------| > | mean | 68 | 89 | 106 | > > (note that times are really not that stable, while I always launched > Emacs in > the same conditions, without doing anything else during that time!) > > So, the above 2 sets of customs have a real impact on the load time. > > But I'm still unsure how I have to change all of the above snippets > of code, > in order to keep the same functionality, but without the time delays > when > Emacs starts up... > > >> Hope some of this helps. If not, let me see you full configuration >> - maybe I >> can spot something else. > > My .emacs file is there: > > http://www.mygooglest.com/sva/emacs-init-sva.el > > Though it's well documented, it's not a tiny one... But very well > structured, > so quite easy to find stuff related to each other. > > I'm always interested by any comment... > > Best regards, > Seb > > -- > Sébastien Vauban > > > _______________________________________________ > Emacs-orgmode mailing list > Please use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode - Carsten ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Having (too) many files in org-agenda-files 2010-09-30 11:24 ` Carsten Dominik @ 2010-09-30 11:53 ` Sébastien Vauban 2010-09-30 15:33 ` Nick Dokos 0 siblings, 1 reply; 26+ messages in thread From: Sébastien Vauban @ 2010-09-30 11:53 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ Hi, Carsten Dominik wrote: > On Sep 30, 2010, at 12:20 AM, Sébastien Vauban wrote: >> Carsten Dominik wrote: >>> On Sep 29, 2010, at 10:32 AM, Sébastien Vauban wrote: >>>> Carsten Dominik wrote: >>>>> On Sep 28, 2010, at 8:45 PM, Sébastien Vauban wrote: >>>>>> Of course, I have many, many files in Org mode. All files I write (or >>>>>> touch) in fact. >>>>>> >>>>>> Of course, I would like to search through my files at some point in >>>>>> time. The problem is the load-time of my Emacs, now 221 seconds, coming >>>>>> from 20 seconds before the heavy use of Org... >>>>> >>>>> 4 minutes of startup time is entirely unacceptable. And I think you need >>>>> to identify what is causing this. >>>>> >>>>> fontification at display time is standard, I believe. >>>> >>>> It seems not, from what I see in the Messages buffer. I really don't have >>>> the impression of having fiddled with that, really. >> >>>>> You must be doing something strange [...] maybe forcing global >>>>> fontification for each file or so. >>>> >>>> To repeat myself, no to that question. But ispell and flyspell are called >>>> for Org files. Maybe there are interactions? >>>> >>>> [Using org-agenda-text-search-extra-files] reduces my load time from 221 >>>> seconds down to 92 seconds. Already a huge diff! >>> >>> Still bad though. I am wondering what is causing the fontification >>> message. I do not get this, so it must be something in your setup. You >>> should try to find out when this is happening and why. >> >> You've seen, from my reply to Matt, why my *Messages* buffer is more >> verbose than yours. It's on purpose, just to be able to figure out more >> easily what's going on. Though, I don't have yet... >> >>> Also, you might consider to remove (org-agenda-list) from .emacs. I think >>> it is pretty much always a bad idea to put a command like this into your >>> startup. Just make it a habit to call it early after starting Emacs. >> >> Honestly, that would not change that much. Having to wait 92 seconds at >> startup, or a long time just a few minutes later has the same impact for >> me. And: don't try to make me stop using Org ;-)) > > :-) > > The reason why I am suggesting to remove this command is more that it make > emacs more usable for command line usage etc. Not convinced yet ;-) For command-line Emacs, either I use emacsclient or emacs without my config file, so that's not the problem there. And the fact is I need my agenda quite early in the process (after firing up Emacs). > Furthermore, you are adding quite a bit to font-lock, but I don't see why it > should be so slow. Does someone know if the way I use column-marker and the highlighting some keywords is wrong? > My Emacs starts up in 4 seconds at most. When I create an agenda, I am > talking 1 second to maybe 2. I have about 10 files contributing to the > agenda. I would love such figures. >>> It also seems to me you some of the extra packages might be activated >>> several times in each file. One possible reason could be that you have put >>> the code to turn them on into several hooks like text-mode-hook, >>> outline-mode-hook, and org-mode-hook. Turning on org-mode will first run >>> text-mode-hook, then outline-mode-hook, then org-mode-hook ..... Maybe you >>> are also calling font-lock-fontify-buffer explicitly in one of your hooks? >> >> The only fontification customs that I do are here: >> >> --8<---------------cut here---------------start------------->8--- >> ;; special words >> (setq keywords-critical-pattern >> "\\(BUGS\\|FIXME\\|TODO\\|todo\\|XXX\\|[Ee][Rr][Rr][Oo][Rr]\\| >> [Mm][Ii][Ss][Ss][Ii][Nn][Gg]\\|[Ii][Nn][Vv][Aa][Ll][Ii][Dd]\\|[Ff] >> [Aa][Ii][Ll][Ee][Dd]\\|[Cc][Oo][Rr][Rr][Uu][Pp][Tt][Ee][Dd]\\)") >> (make-face 'keywords-critical) >> (GNUEmacs (set-face-attribute 'keywords-critical nil :foreground "red" >> :background "yellow" :weight 'bold)) >> >> (setq keywords-org-critical-pattern >> "\\(BUGS\\|FIXME\\|XXX\\|[^*] TODO\\|[Ee][Rr][Rr][Oo][Rr]\\|[Mm] >> [Ii][Ss][Ss][Ii][Nn][Gg]\\|[Ii][Nn][Vv][Aa][Ll][Ii][Dd]\\|[Ff][Aa] >> [Ii][Ll][Ee][Dd]\\|[Cc][Oo][Rr][Rr][Uu][Pp][Tt][Ee][Dd]\\)") >> ; smaller subset of keywords for ensuring >> no conflict with Org mode TODO keywords >> >> ;; FIXME Highlighting all special keywords but "TODO" in Org mode is already >> a >> ;; good step. Though, a nicer integration would be that "TODO" strings in >> the >> ;; headings are not touched by this code, and that only "TODO" strings in >> the >> ;; text body would be. Don't know (yet) how to do that... >> (make-face 'keywords-org-critical) >> (GNUEmacs (set-face-attribute 'keywords-org-critical nil :foreground "red" >> :background "yellow" :weight 'bold)) >> >> (setq keywords-normal-pattern "\\([Ww][Aa][Rr][Nn][Ii][Nn][Gg]\\)") >> (make-face 'keywords-normal) >> (GNUEmacs (set-face-attribute 'keywords-normal nil :foreground "magenta2" >> :background "yellow")) >> >> ;; set up highlighting of special words for proper selected major modes only >> (dolist (mode '(fundamental-mode >> svn-log-view-mode >> text-mode)) ; no interference with Org mode (which derives >> from text-mode) >> (font-lock-add-keywords mode >> `((,keywords-critical-pattern 1 'keywords- >> critical prepend) >> (,keywords-normal-pattern 1 'keywords- >> normal prepend)))) >> >> ;; set up highlighting of special words for Org mode only >> (dolist (mode '(org-mode)) >> (font-lock-add-keywords mode >> `((,keywords-org-critical-pattern 1 >> keywords-org-critical prepend) >> (,keywords-normal-pattern 1 'keywords- >> normal prepend)))) >> >> ;; add fontification patterns (even in comments) to a selected major mode >> ;; *and* all major modes derived from it >> (defun fontify-keywords () >> (interactive) >> (font-lock-add-keywords nil >> `((,keywords-critical-pattern 1 'keywords- >> critical prepend) >> (,keywords-normal-pattern 1 'keywords- >> normal prepend)))) >> >> ;; set up highlighting of special words for selected major modes *and* all >> ;; major modes derived from them >> (dolist (hook '(c++-mode-hook c-mode-hook change-log-mode-hook cperl- >> mode-hook css-mode-hook >> emacs-lisp-mode-hook >> html-mode-hook >> java-mode-hook >> latex-mode-hook lisp-mode-hook >> makefile-mode-hook message-mode-hook >> php-mode-hook python-mode-hook >> sh-mode-hook shell-mode-hook ssh-config-mode-hook)) >> (add-hook hook 'fontify-keywords)) >> --8<---------------cut here---------------end--------------->8--- >> >> The goal is to highlight words such as FIXME, WARNING, XXX, TODO in as many >> files as possible. >> >> For Org, a small custom (of the custom) is done in order not to catch all >> TODO words: the TODO words in headlines (i.e., preceded by `* ') are *not* >> highlighted. >> >> They are well highlighted when found in other portions of (normal) text. >> >> Other custom: >> >> --8<---------------cut here---------------start------------->8--- >> ;; highlight columns 78 to 80 in some modes >> (when (try-require 'column-marker) >> (dolist (hook '(emacs-lisp-mode-hook >> cperl-mode-hook >> shell-mode-hook >> text-mode-hook >> change-log-mode-hook >> makefile-mode-hook >> message-mode-hook >> texinfo-mode-hook)) >> (add-hook hook (lambda () >> (interactive) >> (column-marker-1 78) >> (column-marker-2 79) >> (column-marker-3 80)))) >> --8<---------------cut here---------------end--------------->8--- >> >> for getting markers in columns 78 to 80, showing me I'm good for a `M-q'... >> >> I've done multiple tests, now: >> >> - with none of the 2 above sets of customs >> - with the 1st custom disabled, and the column-marker one enabled >> - with both enabled >> >> Times observed (in seconds): >> >> | | no highlight | column marker only | all highlights | >> |------+--------------+--------------------+----------------| >> | | 63 | 82 | 91 | >> | | 65 | 84 | 96 | >> | | 76 | 100 | 130 | >> |------+--------------+--------------------+----------------| >> | mean | 68 | 89 | 106 | >> >> (note that times are really not that stable, while I always launched Emacs >> in the same conditions, without doing anything else during that time!) >> >> So, the above 2 sets of customs have a real impact on the load time. >> >> But I'm still unsure how I have to change all of the above snippets of >> code, in order to keep the same functionality, but without the time delays >> when Emacs starts up... >> >> >>> Hope some of this helps. If not, let me see you full configuration - maybe >>> I can spot something else. >> >> My .emacs file is there: >> >> http://www.mygooglest.com/sva/emacs-init-sva.el >> >> Though it's well documented, it's not a tiny one... But very well >> structured, so quite easy to find stuff related to each other. >> >> I'm always interested by any comment... Best regards, Seb -- Sébastien Vauban _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode-mXXj517/zsQ@public.gmane.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Re: Having (too) many files in org-agenda-files 2010-09-30 11:53 ` Sébastien Vauban @ 2010-09-30 15:33 ` Nick Dokos 2010-09-30 17:08 ` Sébastien Vauban 0 siblings, 1 reply; 26+ messages in thread From: Nick Dokos @ 2010-09-30 15:33 UTC (permalink / raw) To: =?utf-8?Q?S=C3=A9bastien_Vauban?=; +Cc: nicholas.dokos, emacs-orgmode Sébastien Vauban <wxhgmqzgwmuf@spammotel.com> wrote: > >>> Also, you might consider to remove (org-agenda-list) from .emacs. I think > >>> it is pretty much always a bad idea to put a command like this into your > >>> startup. Just make it a habit to call it early after starting Emacs. > >> > >> Honestly, that would not change that much. Having to wait 92 seconds at > >> startup, or a long time just a few minutes later has the same impact for > >> me. And: don't try to make me stop using Org ;-)) > > > > :-) > > > > The reason why I am suggesting to remove this command is more that it make > > emacs more usable for command line usage etc. > > Not convinced yet ;-) > > For command-line Emacs, either I use emacsclient or emacs without my config > file, so that's not the problem there. > > And the fact is I need my agenda quite early in the process (after firing up > Emacs). > Maybe you should try adding a call to the profiler to your .emacs and try to measure e.g. how much the font locking costs. Off the top of my head and entirely untested, adding ,---- | (require 'elp) | (elp-instrument-package "font-lock") | | ;; rest of your .emacs | | (elp-results) `---- might be enough. HTH, Nick ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Having (too) many files in org-agenda-files 2010-09-30 15:33 ` Nick Dokos @ 2010-09-30 17:08 ` Sébastien Vauban 2010-09-30 17:37 ` Carsten Dominik 2010-10-06 14:47 ` Daniel Clemente 0 siblings, 2 replies; 26+ messages in thread From: Sébastien Vauban @ 2010-09-30 17:08 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ Hi Nick, Nick Dokos wrote: > Sébastien Vauban <wxhgmqzgwmuf-geNee64TY+gS+FvcfC7Uqw@public.gmane.org> wrote: >>>>> Also, you might consider to remove (org-agenda-list) from .emacs. I >>>>> think it is pretty much always a bad idea to put a command like this >>>>> into your startup. Just make it a habit to call it early after starting >>>>> Emacs. >>>> >>>> Honestly, that would not change that much. Having to wait 92 seconds at >>>> startup, or a long time just a few minutes later has the same impact for >>>> me. > > Maybe you should try adding a call to the profiler to your .emacs > and try to measure e.g. how much the font locking costs. Off the top of > my head and entirely untested, adding > > ,---- > | (require 'elp) > | (elp-instrument-package "font-lock") > | > | ;; rest of your .emacs > | > | (elp-results) > `---- > > might be enough. Here are the results. --8<---------------cut here---------------start------------->8--- font-lock-fontify-buffer 96 15.383627999 0.1602461249 font-lock-default-fontify-buffer 96 15.378296000 0.1601905833 font-lock-fontify-region 96 15.284044000 0.1592087916 font-lock-default-fontify-region 96 15.282674000 0.1591945208 font-lock-fontify-keywords-region 96 15.184516 0.1581720416 font-lock-prepend-text-property 8608 0.2712220000 3.150...e-05 font-lock-unfontify-region 96 0.0859729999 0.0008955520 font-lock-add-keywords 166 0.0800819999 0.0004824216 font-lock-compile-keywords 138 0.0671930000 0.0004869057 font-lock-default-unfontify-region 96 0.0378660000 0.0003944375 font-lock-mode 142 0.0344680000 0.0002427323 font-lock-default-function 142 0.028445 0.0002003169 font-lock-mode-internal 73 0.0272529999 0.0003733287 font-lock-turn-on-thing-lock 73 0.0238939999 0.0003273150 font-lock-compile-keyword 5505 0.0225559999 4.097...e-06 font-lock-set-defaults 525 0.0174539999 3.324...e-05 font-lock-remove-keywords 130 0.0018569999 1.428...e-05 font-lock-change-mode 33 0.0016060000 4.866...e-05 font-lock-eval-keywords 81 0.0012500000 1.543...e-05 font-lock-value-in-major-mode 187 0.0003879999 2.074...e-06 font-lock-extend-region-wholelines 96 0.000309 3.21875e-06 font-lock-extend-region-multiline 96 0.0002549999 2.656...e-06 font-lock-extend-jit-lock-region-after-change 28 0.0002529999 9.035...e-06 font-lock-after-fontify-buffer 96 0.0002499999 2.604...e-06 font-lock-choose-keywords 41 8.899...e-05 2.170...e-06 font-lock-update-removed-keyword-alist 36 6.8e-05 1.888...e-06 --8<---------------cut here---------------end--------------->8--- with 94 files in my =org-agenda-files=. Yes, 94, not 96? You can effectively see that =font-lock-*= is taking me 15s during my Emacs startup. Though, I don't know what's the next action to be taken from this observation. Can you guide me? Best regards, Seb -- Sébastien Vauban _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode-mXXj517/zsQ@public.gmane.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Re: Having (too) many files in org-agenda-files 2010-09-30 17:08 ` Sébastien Vauban @ 2010-09-30 17:37 ` Carsten Dominik 2010-12-01 19:46 ` Sébastien Vauban 2010-10-06 14:47 ` Daniel Clemente 1 sibling, 1 reply; 26+ messages in thread From: Carsten Dominik @ 2010-09-30 17:37 UTC (permalink / raw) To: Sébastien Vauban; +Cc: emacs-orgmode On Sep 30, 2010, at 7:08 PM, Sébastien Vauban wrote: > Hi Nick, > > Nick Dokos wrote: >> Sébastien Vauban <wxhgmqzgwmuf@spammotel.com> wrote: >>>>>> Also, you might consider to remove (org-agenda-list) >>>>>> from .emacs. I >>>>>> think it is pretty much always a bad idea to put a command like >>>>>> this >>>>>> into your startup. Just make it a habit to call it early after >>>>>> starting >>>>>> Emacs. >>>>> >>>>> Honestly, that would not change that much. Having to wait 92 >>>>> seconds at >>>>> startup, or a long time just a few minutes later has the same >>>>> impact for >>>>> me. >> >> Maybe you should try adding a call to the profiler to your .emacs >> and try to measure e.g. how much the font locking costs. Off the >> top of >> my head and entirely untested, adding >> >> ,---- >> | (require 'elp) >> | (elp-instrument-package "font-lock") >> | >> | ;; rest of your .emacs >> | >> | (elp-results) >> `---- >> >> might be enough. > > Here are the results. > > --8<---------------cut here---------------start------------->8--- > font-lock-fontify-buffer > 96 15.383627999 0.1602461249 Well, the point I am trying to make already for a number of messages is this: font-lock-fontify-buffer should not be called at all - it is not called in my setup. But, apparently, fontlock is bad, but not the worst issue you are encountering. > font-lock-default-fontify-buffer > 96 15.378296000 0.1601905833 > font-lock-fontify-region > 96 15.284044000 0.1592087916 > font-lock-default-fontify-region > 96 15.282674000 0.1591945208 > font-lock-fontify-keywords-region > 96 15.184516 0.1581720416 > font-lock-prepend-text-property > 8608 0.2712220000 3.150...e-05 > font-lock-unfontify-region > 96 0.0859729999 0.0008955520 > font-lock-add-keywords > 166 0.0800819999 0.0004824216 > font-lock-compile-keywords > 138 0.0671930000 0.0004869057 > font-lock-default-unfontify-region > 96 0.0378660000 0.0003944375 > font-lock-mode > 142 0.0344680000 0.0002427323 > font-lock-default-function > 142 0.028445 0.0002003169 > font-lock-mode-internal > 73 0.0272529999 0.0003733287 > font-lock-turn-on-thing-lock > 73 0.0238939999 0.0003273150 > font-lock-compile-keyword > 5505 0.0225559999 4.097...e-06 > font-lock-set-defaults > 525 0.0174539999 3.324...e-05 > font-lock-remove-keywords > 130 0.0018569999 1.428...e-05 > font-lock-change-mode > 33 0.0016060000 4.866...e-05 > font-lock-eval-keywords > 81 0.0012500000 1.543...e-05 > font-lock-value-in-major-mode > 187 0.0003879999 2.074...e-06 > font-lock-extend-region-wholelines > 96 0.000309 3.21875e-06 > font-lock-extend-region-multiline > 96 0.0002549999 2.656...e-06 > font-lock-extend-jit-lock-region-after-change > 28 0.0002529999 9.035...e-06 > font-lock-after-fontify-buffer > 96 0.0002499999 2.604...e-06 > font-lock-choose-keywords > 41 8.899...e-05 2.170...e-06 > font-lock-update-removed-keyword-alist > 36 6.8e-05 1.888...e-06 > --8<---------------cut here---------------end--------------->8--- > > with 94 files in my =org-agenda-files=. Yes, 94, not 96? > > You can effectively see that =font-lock-*= is taking me 15s during > my Emacs > startup. > > Though, I don't know what's the next action to be taken from this > observation. > Can you guide me? You should instrument other packages like org and outline to see where the rest of the time is eaten. - Carsten ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Having (too) many files in org-agenda-files 2010-09-30 17:37 ` Carsten Dominik @ 2010-12-01 19:46 ` Sébastien Vauban 2010-12-01 23:00 ` Eric S Fraga 2010-12-02 3:10 ` Jeff Horn 0 siblings, 2 replies; 26+ messages in thread From: Sébastien Vauban @ 2010-12-01 19:46 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ Hi Carsten and Nick, Carsten Dominik wrote: > On Sep 30, 2010, at 7:08 PM, Sébastien Vauban wrote: >> Nick Dokos wrote: >>> Sébastien Vauban <wxhgmqzgwmuf-geNee64TY+gS+FvcfC7Uqw@public.gmane.org> wrote: >>>>>> Having to wait 92 seconds at startup, or a long time just a few minutes >>>>>> later has the same impact for me. >>> >>> Maybe you should try adding a call to the profiler to your .emacs and try >>> to measure e.g. how much the font locking costs. Off the top of my head >>> and entirely untested, adding (require 'elp) might be enough. >> >> Here are the results. >> >> font-lock-fontify-buffer 96 15.383627999 0.1602461249 > > Well, the point I am trying to make already for a number of messages is > this: font-lock-fontify-buffer should not be called at all - it is not > called in my setup. > > But, apparently, fontlock is bad, but not the worst issue you are > encountering. > >> font-lock-default-fontify-buffer 96 15.378296000 0.1601905833 >> font-lock-fontify-region 96 15.284044000 0.1592087916 >> font-lock-default-fontify-region 96 15.282674000 0.1591945208 >> font-lock-fontify-keywords-region 96 15.184516 0.1581720416 >> font-lock-prepend-text-property 8608 0.2712220000 3.150...e-05 >> font-lock-unfontify-region 96 0.0859729999 0.0008955520 >> font-lock-add-keywords 166 0.0800819999 0.0004824216 >> font-lock-compile-keywords 138 0.0671930000 0.0004869057 >> font-lock-default-unfontify-region 96 0.0378660000 0.0003944375 >> font-lock-mode 142 0.0344680000 0.0002427323 For whatever reason, I've noticed that there are: - 96 calls for 32 files in my org-agenda-files - 99 calls for 33 files in my org-agenda-files hence, 3 font-lock-fontify-buffer calls per Org file[1]. Anyway, I now do have found the culprit: the =column-marker= package (which highlights my columns 78, 79 and 80 of text), loaded in my .emacs file by this snippet): #+begin_src emacs-lisp ;; highlight columns 78 to 80 in some modes (when (require 'column-marker) (dolist (hook '(emacs-lisp-mode-hook cperl-mode-hook shell-mode-hook text-mode-hook change-log-mode-hook makefile-mode-hook message-mode-hook texinfo-mode-hook)) (add-hook hook (lambda () (interactive) (column-marker-1 78) (column-marker-2 79) (column-marker-3 80))))) #+end_src It accounts for a bit more than 10 s delay in the total time of my .emacs file -- which, currently, still calls (org-agenda-list): - with it, total time is 70s - 73s - without it, total time is 80s - 84s The difference is really huge... Though, such a capability being really nice, do you know some replacement for this? Best regards, Seb Footnotes: [1] The offending package highlights 3 columns in the buffer: maybe that's the factor 3 for every Org file... -- Sébastien Vauban _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode-mXXj517/zsQ@public.gmane.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Re: Having (too) many files in org-agenda-files 2010-12-01 19:46 ` Sébastien Vauban @ 2010-12-01 23:00 ` Eric S Fraga [not found] ` <17540.1291246717@gamaville.americas.hpqcorp.net> 2010-12-02 3:10 ` Jeff Horn 1 sibling, 1 reply; 26+ messages in thread From: Eric S Fraga @ 2010-12-01 23:00 UTC (permalink / raw) To: Sébastien Vauban; +Cc: emacs-orgmode Sébastien Vauban <wxhgmqzgwmuf@spammotel.com> writes: [...] > Anyway, I now do have found the culprit: the =column-marker= package (which > highlights my columns 78, 79 and 80 of text), loaded in my .emacs file by this > snippet): [...] > Though, such a capability being really nice, do you know some replacement for > this? Maybe check out /develock-mode/ in Emacs 23.x. Aside: Personally, I don't like it and I wish I could figure out how to turn it off so if anybody can help with this, I would greatly appreciate it! It appears to be turned on by default in some modes (not org, luckily) but I have no found any hook which turns it on... -- : Eric S Fraga (GnuPG: 0xC89193D8FFFCF67D) in Emacs 23.2.1 : using Org-mode version 7.3 (release_7.3.162.g8e74) ^ permalink raw reply [flat|nested] 26+ messages in thread
[parent not found: <17540.1291246717@gamaville.americas.hpqcorp.net>]
* Re: Re: Having (too) many files in org-agenda-files [not found] ` <17540.1291246717@gamaville.americas.hpqcorp.net> @ 2010-12-02 8:57 ` Eric S Fraga 2010-12-02 9:25 ` Sébastien Vauban 0 siblings, 1 reply; 26+ messages in thread From: Eric S Fraga @ 2010-12-02 8:57 UTC (permalink / raw) To: nicholas.dokos; +Cc: =?utf-8?Q?S=C3=A9bastien?= Vauban, emacs-orgmode Nick Dokos <nicholas.dokos@hp.com> writes: > Eric S Fraga <e.fraga@ucl.ac.uk> wrote: > >> Sébastien Vauban <wxhgmqzgwmuf@spammotel.com> writes: >> >> [...] >> >> > Anyway, I now do have found the culprit: the =column-marker= package (which >> > highlights my columns 78, 79 and 80 of text), loaded in my .emacs file by this >> > snippet): >> >> [...] >> >> > Though, such a capability being really nice, do you know some replacement for >> > this? >> >> Maybe check out /develock-mode/ in Emacs 23.x. >> > > The description and comments on emacswiki.org are quite colorful (in > a sick sort of way :-) ): > > "I tried it in Lisp mode and it filled my buffer with so much ketchup > and mustard I nearly fell off my chair." Love it! That's exactly how I feel about it. The only thing I can figure is that whoever wrote this mode must be colour blind... :( >> Aside: Personally, I don't like it and I wish I could figure out how to >> turn it off so if anybody can help with this, I would greatly appreciate >> it! It appears to be turned on by default in some modes (not org, >> luckily) but I have no found any hook which turns it on... > > M-x locate-library <RET> develock <RET> > > M-x shell <RET> > rm /path/from/locate-library/above/develock.* > > restart emacs and fix the errors > > :-) Okay, a little drastic but I may yet reach this point... -- : Eric S Fraga (GnuPG: 0xC89193D8FFFCF67D) in Emacs 23.2.1 : using Org-mode version 7.3 (release_7.3.163.g76877) ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Having (too) many files in org-agenda-files 2010-12-02 8:57 ` Eric S Fraga @ 2010-12-02 9:25 ` Sébastien Vauban 2010-12-12 18:28 ` David Maus 0 siblings, 1 reply; 26+ messages in thread From: Sébastien Vauban @ 2010-12-02 9:25 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ Hi Eric, Eric S Fraga wrote: > Nick Dokos <nicholas.dokos-VXdhtT5mjnY@public.gmane.org> writes: >> Eric S Fraga <e.fraga-hclig2XLE9Zaa/9Udqfwiw@public.gmane.org> wrote: >>> Sébastien Vauban <wxhgmqzgwmuf-geNee64TY+gS+FvcfC7Uqw@public.gmane.org> writes: >>> >>>> Anyway, I now do have found the culprit: the =column-marker= package (which >>>> highlights my columns 78, 79 and 80 of text), loaded in my .emacs file by this >>>> snippet): >>>> >>>> Though, such a capability being really nice, do you know some replacement for >>>> this? >>> >>> Maybe check out /develock-mode/ in Emacs 23.x. >> >> M-x locate-library <RET> develock <RET> Don't have it: No library develock in search path on: GNU Emacs 23.1.50.1 (i386-mingw-nt5.1.2600) of 2009-10-14 on LENNART-69DE564 (patched) Best regards, Seb -- Sébastien Vauban _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode-mXXj517/zsQ@public.gmane.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Re: Having (too) many files in org-agenda-files 2010-12-02 9:25 ` Sébastien Vauban @ 2010-12-12 18:28 ` David Maus 0 siblings, 0 replies; 26+ messages in thread From: David Maus @ 2010-12-12 18:28 UTC (permalink / raw) To: Sébastien Vauban; +Cc: emacs-orgmode [-- Attachment #1.1: Type: text/plain, Size: 1057 bytes --] At Thu, 02 Dec 2010 10:25:54 +0100, Sébastien Vauban wrote: > > Hi Eric, > > Eric S Fraga wrote: > > Nick Dokos <nicholas.dokos@hp.com> writes: > >> Eric S Fraga <e.fraga@ucl.ac.uk> wrote: > >>> Sébastien Vauban <wxhgmqzgwmuf@spammotel.com> writes: > >>> > >>>> Anyway, I now do have found the culprit: the =column-marker= package (which > >>>> highlights my columns 78, 79 and 80 of text), loaded in my .emacs file by this > >>>> snippet): > >>>> > >>>> Though, such a capability being really nice, do you know some replacement for > >>>> this? > >>> > >>> Maybe check out /develock-mode/ in Emacs 23.x. > >> > >> M-x locate-library <RET> develock <RET> > > Don't have it: > > No library develock in search path > > on: > > GNU Emacs 23.1.50.1 (i386-mingw-nt5.1.2600) of 2009-10-14 on > LENNART-69DE564 (patched) Maybe this is obvious, but: http://www.emacswiki.org/emacs/DevelockMode Best, -- David -- OpenPGP... 0x99ADB83B5A4478E6 Jabber.... dmjena@jabber.org Email..... dmaus@ictsoc.de [-- Attachment #1.2: Type: application/pgp-signature, Size: 230 bytes --] [-- Attachment #2: Type: text/plain, Size: 201 bytes --] _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Re: Having (too) many files in org-agenda-files 2010-12-01 19:46 ` Sébastien Vauban 2010-12-01 23:00 ` Eric S Fraga @ 2010-12-02 3:10 ` Jeff Horn 2010-12-02 9:15 ` Sébastien Vauban 1 sibling, 1 reply; 26+ messages in thread From: Jeff Horn @ 2010-12-02 3:10 UTC (permalink / raw) To: Sébastien Vauban; +Cc: emacs-orgmode > Though, such a capability being really nice, do you know some replacement for > this? Pardon the noise if this has an obvious answer... but why not just use auto-fill with a column set to 80 instead of the highlighting? Is it because sometimes you want to overflow past the 80th column? Jeff -- Jeffrey Horn Graduate Lecturer and PhD Student in Economics George Mason University (704) 271-4797 jhorn@gmu.edu jrhorn424@gmail.com http://www.failuretorefrain.com/jeff/ ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Having (too) many files in org-agenda-files 2010-12-02 3:10 ` Jeff Horn @ 2010-12-02 9:15 ` Sébastien Vauban 0 siblings, 0 replies; 26+ messages in thread From: Sébastien Vauban @ 2010-12-02 9:15 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ Hi Jeff and Eric, Jeff Horn wrote: >> Though, such a capability being really nice, do you know some replacement for >> this? > > Pardon the noise if this has an obvious answer... but why not just use > auto-fill with a column set to 80 instead of the highlighting? Is it > because sometimes you want to overflow past the 80th column? The auto-fill is not sufficient, for many reasons: - other people do work in your text - or, even alone: you have a correctly filled paragraph, and you come and add a few words in the middle: everything is moved to the right, but *not auto-filled* (unless your cursor position is above 80 at that point)! Eric, I'll have a look at develock. Thanks. Best regards, Seb -- Sébastien Vauban _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode-mXXj517/zsQ@public.gmane.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Re: Having (too) many files in org-agenda-files 2010-09-30 17:08 ` Sébastien Vauban 2010-09-30 17:37 ` Carsten Dominik @ 2010-10-06 14:47 ` Daniel Clemente 1 sibling, 0 replies; 26+ messages in thread From: Daniel Clemente @ 2010-10-06 14:47 UTC (permalink / raw) To: Sébastien Vauban; +Cc: emacs-orgmode Do you have your .org files inside a version control system like git or bzr? In that case, it's vc-mode who is delaying too much. See the thread http://www.mail-archive.com/emacs-orgmode@gnu.org/msg25902.html for a dirty workaround (disabling vc-mode). In my system I have now 200 agenda files (120k lines, 5'6 Mb) and I must wait 1 minute on a fast computer (1'45" on a slower one) to run org-agenda-list. I timed it closing all *.org and running: time emacsclient -n --eval '(org-agenda-list)' The problem is in vc-mode, not org. It is too slow. And what is exactly doing? I attach it at the end of this mail. Sometimes it's ls-files, other diff-index. -- Daniel #+begin_example Debugger entered--Lisp error: (quit) call-process("git" nil (t nil) nil "ls-files" "-c" "-z" "--" "wiki/Imagen.org") apply(call-process "git" nil (t nil) nil ("ls-files" "-c" "-z" "--" "wiki/Imagen.org")) process-file("git" nil (t nil) nil "ls-files" "-c" "-z" "--" "wiki/Imagen.org") apply(process-file "git" nil (t nil) nil "ls-files" ("-c" "-z" "--" "wiki/Imagen.org")) vc-git--call((t nil) "ls-files" "-c" "-z" "--" "wiki/Imagen.org") apply(vc-git--call (t nil) "ls-files" ("-c" "-z" "--" "wiki/Imagen.org")) vc-git--out-ok("ls-files" "-c" "-z" "--" "wiki/Imagen.org") byte-code(…) vc-git-registered("/home/dc/.mirp/wiki/Imagen.org") apply(vc-git-registered "/home/dc/.mirp/wiki/Imagen.org") vc-call-backend(Git registered "/home/dc/.mirp/wiki/Imagen.org") #[…] mapc(#[(b) "…" [b file vc-call-backend registered vc-file-setprop vc-backend throw found t] 4] (RCS CVS SVN SCCS Bzr Git Hg Mtn Arch)) byte-code("…") vc-registered("/home/dc/.mirp/wiki/Imagen.org") vc-backend("/home/dc/.mirp/wiki/Imagen.org") #[…] vc-find-file-hook() run-hooks(find-file-hook) after-find-file(nil t) find-file-noselect-1(#<buffer Imagen.org> "~/wiki/Imagen.org" nil nil "~/wiki/Imagen.org" (5929158 19)) find-file-noselect("/home/dc/.mirp/wiki/Imagen.org" nil nil nil) find-file("/home/dc/.mirp/wiki/Imagen.org") #+end_example El Thu, 30 Sep 2010 19:08:02 +0200 Sébastien Vauban va escriure: > > Hi Nick, > > Nick Dokos wrote: > > Sébastien Vauban <wxhgmqzgwmuf@spammotel.com> wrote: > >>>>> Also, you might consider to remove (org-agenda-list) from .emacs. I > >>>>> think it is pretty much always a bad idea to put a command like this > >>>>> into your startup. Just make it a habit to call it early after starting > >>>>> Emacs. > >>>> > >>>> Honestly, that would not change that much. Having to wait 92 seconds at > >>>> startup, or a long time just a few minutes later has the same impact for > >>>> me. > > > > Maybe you should try adding a call to the profiler to your .emacs > > and try to measure e.g. how much the font locking costs. Off the top of > > my head and entirely untested, adding > > > > ,---- > > | (require 'elp) > > | (elp-instrument-package "font-lock") > > | > > | ;; rest of your .emacs > > | > > | (elp-results) > > `---- > > > > might be enough. > > Here are the results. > > --8<---------------cut here---------------start------------->8--- > font-lock-fontify-buffer 96 15.383627999 0.1602461249 > font-lock-default-fontify-buffer 96 15.378296000 0.1601905833 > font-lock-fontify-region 96 15.284044000 0.1592087916 > font-lock-default-fontify-region 96 15.282674000 0.1591945208 > font-lock-fontify-keywords-region 96 15.184516 0.1581720416 > font-lock-prepend-text-property 8608 0.2712220000 3.150...e-05 > font-lock-unfontify-region 96 0.0859729999 0.0008955520 > font-lock-add-keywords 166 0.0800819999 0.0004824216 > font-lock-compile-keywords 138 0.0671930000 0.0004869057 > font-lock-default-unfontify-region 96 0.0378660000 0.0003944375 > font-lock-mode 142 0.0344680000 0.0002427323 > font-lock-default-function 142 0.028445 0.0002003169 > font-lock-mode-internal 73 0.0272529999 0.0003733287 > font-lock-turn-on-thing-lock 73 0.0238939999 0.0003273150 > font-lock-compile-keyword 5505 0.0225559999 4.097...e-06 > font-lock-set-defaults 525 0.0174539999 3.324...e-05 > font-lock-remove-keywords 130 0.0018569999 1.428...e-05 > font-lock-change-mode 33 0.0016060000 4.866...e-05 > font-lock-eval-keywords 81 0.0012500000 1.543...e-05 > font-lock-value-in-major-mode 187 0.0003879999 2.074...e-06 > font-lock-extend-region-wholelines 96 0.000309 3.21875e-06 > font-lock-extend-region-multiline 96 0.0002549999 2.656...e-06 > font-lock-extend-jit-lock-region-after-change 28 0.0002529999 9.035...e-06 > font-lock-after-fontify-buffer 96 0.0002499999 2.604...e-06 > font-lock-choose-keywords 41 8.899...e-05 2.170...e-06 > font-lock-update-removed-keyword-alist 36 6.8e-05 1.888...e-06 > --8<---------------cut here---------------end--------------->8--- > > with 94 files in my =org-agenda-files=. Yes, 94, not 96? > > You can effectively see that =font-lock-*= is taking me 15s during my Emacs > startup. > > Though, I don't know what's the next action to be taken from this observation. > Can you guide me? > > Best regards, > Seb > > -- > Sébastien Vauban > > > _______________________________________________ > Emacs-orgmode mailing list > Please use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Having (too) many files in org-agenda-files 2010-09-29 3:56 ` Carsten Dominik 2010-09-29 8:32 ` Sébastien Vauban @ 2010-09-30 13:37 ` Sébastien Vauban 2010-09-30 13:41 ` Carsten Dominik 1 sibling, 1 reply; 26+ messages in thread From: Sébastien Vauban @ 2010-09-30 13:37 UTC (permalink / raw) To: emacs-orgmode-mXXj517/zsQ Hi Carsten, Carsten Dominik wrote: > On Sep 28, 2010, at 8:45 PM, Sébastien Vauban wrote: > >> I would like to search through my files at some point in time. I even would >> like to search through your files at some point in time, I mean through >> =org-mode/contrib/babel= and =Worg= for example. >> >> Hence, I put them in =org-agenda-files= [...]. > > About a separate variable for search file, that does of cause exist: > org-agenda-text-search-extra-files Funny, though, that these files are already scanned when: - clocking in a task of some org-agenda-files, or I don't see the reason for this. - calling the org-dispatcher (=C-c a=) I understand that such scan should occur as soon as I press =C-c a s=, but why already when pressing =C-c a=? Best regards, Seb -- Sébastien Vauban _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode-mXXj517/zsQ@public.gmane.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Re: Having (too) many files in org-agenda-files 2010-09-30 13:37 ` Sébastien Vauban @ 2010-09-30 13:41 ` Carsten Dominik 0 siblings, 0 replies; 26+ messages in thread From: Carsten Dominik @ 2010-09-30 13:41 UTC (permalink / raw) To: Sébastien Vauban; +Cc: emacs-orgmode On Sep 30, 2010, at 3:37 PM, Sébastien Vauban wrote: > Hi Carsten, > > Carsten Dominik wrote: >> On Sep 28, 2010, at 8:45 PM, Sébastien Vauban wrote: >> >>> I would like to search through my files at some point in time. I >>> even would >>> like to search through your files at some point in time, I mean >>> through >>> =org-mode/contrib/babel= and =Worg= for example. >>> >>> Hence, I put them in =org-agenda-files= [...]. >> >> About a separate variable for search file, that does of cause exist: >> org-agenda-text-search-extra-files > > Funny, though, that these files are already scanned when: > > - clocking in a task of some org-agenda-files, or > > I don't see the reason for this. > > - calling the org-dispatcher (=C-c a=) > > I understand that such scan should occur as soon as I press =C-c a > s=, but > why already when pressing =C-c a=? No, this is wrong. Please check the content of org-agenda-files. - Carsten > > Best regards, > Seb > > -- > Sébastien Vauban > > > _______________________________________________ > Emacs-orgmode mailing list > Please use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode - Carsten ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Having (too) many files in org-agenda-files 2010-09-28 18:45 Having (too) many files in org-agenda-files Sébastien Vauban ` (2 preceding siblings ...) 2010-09-29 3:56 ` Carsten Dominik @ 2010-09-29 12:38 ` Matt Lundin 2010-09-29 12:47 ` Matthew Lundin 3 siblings, 1 reply; 26+ messages in thread From: Matt Lundin @ 2010-09-29 12:38 UTC (permalink / raw) To: Sébastien Vauban; +Cc: Org Mode Hi Sebastian, I wrote this response yesterday, but it may have gotten lost in gmane's reverse obfuscation system for email addresses. :) (OT: Is there a "correct" way to respond to your messages in gnus? I subscribe to org-mode via gmane/nntp and in your emails the org-mode ML address is obfuscated and redirected: emacs-orgmode-mXXj517/zsQ@public.gmane.org.) ----- Sébastien Vauban <wxhgmqzgwmuf-geNee64TY+gS+FvcfC7Uqw@public.gmane.org> writes: > Of course, I have many, many files in Org mode. All files I write (or > touch) in fact. > > Of course, I would like to search through my files at some point in time. > I even would like to search through your files at some point in time, I mean > through =org-mode/contrib/babel= and =Worg= for example. > The drawback of org-mode's plain text format is that org-mode needs to load, parse, and fontify, and preserve in memory all files it queries (i.e., agenda files). Too many agenda files can thus cause a pretty big performance hit (both when loading agenda files and constructing agenda views). To avoid this, I would recommend including only important files in org-agenda-files. Possible solutions for searching other files include: 1. loading the other directories when needed (e.g., through a function that changes the value of org-agenda-files) 2. using the variable org-agenda-text-search-extra-files (see below) 3. searching other directories with external tools (grep, perl script, etc.) > The problem is the load-time of my Emacs, now: > > Emacs Init startup time: 221 seconds. Do you invoke an agenda command in your emacs, such as org-agenda-to-appt? That would cause org-mode to load all org files. > coming from 20 seconds before the heavy use of Org... > > with tens of times such lines in my *Messages* buffer: > > OVERVIEW > Checking for library `filladapt'... > +-> Requiring `filladapt' (already loaded) > Checking for library `filladapt'... Found > Fontifying Axa.org... (regexps............................................) > Checking for library `filladapt'... Found > Fontifying Axa.org... (regexps.............................................) > Checking for library `filladapt'... Found > Fontifying Axa.org... (regexps..............................................) > Checking for library `filladapt'... Found > +-> Requiring `outline-mode-easy-bindings' (already loaded) > +-> Requiring `ispell' (already loaded) > Evaluate code AFTER HAVING LOADED `flyspell'... [2 times] > Starting new Ispell process [en_US] ... > Checking for library `filladapt'... > +-> Requiring `filladapt' (already loaded) > Checking for library `filladapt'... Found It seems that filladapt is causing some of the verbosity (and possible slowness) there. When loading agenda files, my *Messages* buffer only shows: OVERVIEW [29 times] > You'll tell me: not a problem, you do that only once a day, and you > use Emacs client/server for the rest of the time. True. A bit, because > I sometimes have to restart Emacs for testing a fresh one (not > impacted by defvars already defined, or deffaces, etc.). > > Having to wait almost 4 minutes is a real pain. So, here my > comments/questions: > > - Isn't it possible to delay the fontification/ispell/etc. to when we really > display (i.e., pop up) the buffer? I guess this must be a major component > of the time this takes. I imagine the fontification is necessary for the agenda to function properly. Thus, org files are parsed en masse when the agenda is called for the first time. (Hence my question about whether you were calling the agenda from ~/.emacs.) > > - Couldn't we have 2 vars: =org-agenda-files= for the files you know you want > have scanned for the agenda construction, and an extra list such as > =org-search-files= for files not containing any dates? Then, some time > would have to be taken when =C-c a s=, but not before. And not if you don't > search for anything in your Org files during that Emacs session... > This already exists. See org-agenda-text-search-extra-files. Best, Matt ^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: Having (too) many files in org-agenda-files 2010-09-29 12:38 ` Matt Lundin @ 2010-09-29 12:47 ` Matthew Lundin 0 siblings, 0 replies; 26+ messages in thread From: Matthew Lundin @ 2010-09-29 12:47 UTC (permalink / raw) To: Sébastien Vauban; +Cc: Org Mode Sébastien, Matt Lundin <mdl@imapmail.org> writes: > Hi Sebastian, My apologies for misspelling your name! - Matt ^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2010-12-12 18:29 UTC | newest] Thread overview: 26+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-09-28 18:45 Having (too) many files in org-agenda-files Sébastien Vauban 2010-09-28 20:19 ` Matt Lundin 2010-09-29 21:21 ` Sébastien Vauban 2010-09-29 3:39 ` Shelagh Manton 2010-09-29 8:52 ` Sébastien Vauban 2010-09-29 3:56 ` Carsten Dominik 2010-09-29 8:32 ` Sébastien Vauban 2010-09-29 13:19 ` Carsten Dominik 2010-09-29 22:20 ` Sébastien Vauban 2010-09-30 11:24 ` Carsten Dominik 2010-09-30 11:53 ` Sébastien Vauban 2010-09-30 15:33 ` Nick Dokos 2010-09-30 17:08 ` Sébastien Vauban 2010-09-30 17:37 ` Carsten Dominik 2010-12-01 19:46 ` Sébastien Vauban 2010-12-01 23:00 ` Eric S Fraga [not found] ` <17540.1291246717@gamaville.americas.hpqcorp.net> 2010-12-02 8:57 ` Eric S Fraga 2010-12-02 9:25 ` Sébastien Vauban 2010-12-12 18:28 ` David Maus 2010-12-02 3:10 ` Jeff Horn 2010-12-02 9:15 ` Sébastien Vauban 2010-10-06 14:47 ` Daniel Clemente 2010-09-30 13:37 ` Sébastien Vauban 2010-09-30 13:41 ` Carsten Dominik 2010-09-29 12:38 ` Matt Lundin 2010-09-29 12:47 ` Matthew Lundin
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).