all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Disable undo in batch mode
@ 2009-10-11  1:49 Decebal
  2009-10-11  3:18 ` Vassil Nikolov
  2009-10-11 10:14 ` Xah Lee
  0 siblings, 2 replies; 6+ messages in thread
From: Decebal @ 2009-10-11  1:49 UTC (permalink / raw)
  To: help-gnu-emacs

I am doing a lot of work on a big buffer (65 MB). I understood that
there is a possibility to disable the undo functionality. Something
that is not used in batch-mode. So this could give a performance
boost.
How can I disable undo?
Are there other things that could be usefull performance wise?


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Disable undo in batch mode
  2009-10-11  1:49 Disable undo in batch mode Decebal
@ 2009-10-11  3:18 ` Vassil Nikolov
  2009-10-11 12:51   ` Decebal
  2009-10-11 10:14 ` Xah Lee
  1 sibling, 1 reply; 6+ messages in thread
From: Vassil Nikolov @ 2009-10-11  3:18 UTC (permalink / raw)
  To: help-gnu-emacs


On Sat, 10 Oct 2009 18:49:35 -0700 (PDT), Decebal <cldwesterhof@gmail.com> said:
> ...
> How can I disable undo?

  Does the apropos command (for "undo") help you find out?

  ---Vassil.



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Disable undo in batch mode
  2009-10-11  1:49 Disable undo in batch mode Decebal
  2009-10-11  3:18 ` Vassil Nikolov
@ 2009-10-11 10:14 ` Xah Lee
  2009-10-11 14:22   ` Decebal
  1 sibling, 1 reply; 6+ messages in thread
From: Xah Lee @ 2009-10-11 10:14 UTC (permalink / raw)
  To: help-gnu-emacs

On Oct 10, 6:49 pm, Decebal <cldwester...@gmail.com> wrote:
> I am doing a lot of work on a big buffer (65 MB). I understood that
> there is a possibility to disable the undo functionality. Something
> that is not used in batch-mode. So this could give a performance
> boost.
> How can I disable undo?
> Are there other things that could be usefull performance wise?

buffer-disable-undo

you find it by calling “elisp-index-search” with search word “undo”.

for batch processing, you want to disable undo, also turn off syntax
coloring, possibly turn off auto save, auto back up, auto major mode
selection, ...etc.

best do it with temp buffer

e.g.

(defun my-process-file (fpath)
  "Process the file at path FPATH ..."
  (let ()
    ;; create temp buffer without undo record.
    ;; first space in temp buff name is necessary
    (set-buffer (get-buffer-create " myTemp"))
    (insert-file-contents fpath nil nil nil t)

    ;; process it ...
    ;; (goto-char 0) ; move to begining of file's content
    ;; ...
    ;; (write-file fpath) ;; write back to the file

    (kill-buffer " myTemp")))

or use with-temp-buffer or with-temp-file.

for more tips on using elisp as a text processing lang like perl,
python, see:

• Text Processing with Emacs Lisp
  http://xahlee.org/emacs/elisp_idioms_batch.html

  Xah
∑ http://xahlee.org/^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Disable undo in batch mode
  2009-10-11  3:18 ` Vassil Nikolov
@ 2009-10-11 12:51   ` Decebal
  0 siblings, 0 replies; 6+ messages in thread
From: Decebal @ 2009-10-11 12:51 UTC (permalink / raw)
  To: help-gnu-emacs

On Oct 11, 5:18 am, Vassil Nikolov <vniko...@pobox.com> wrote:
> > How can I disable undo?
>
>   Does the apropos command (for "undo") help you find out?

Yes, quit logical: buffer-disable-undo.
It went from 36 seconds to 24 seconds. So it was worth it.




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Disable undo in batch mode
  2009-10-11 10:14 ` Xah Lee
@ 2009-10-11 14:22   ` Decebal
  2009-10-13 17:05     ` Xah Lee
  0 siblings, 1 reply; 6+ messages in thread
From: Decebal @ 2009-10-11 14:22 UTC (permalink / raw)
  To: help-gnu-emacs

On Oct 11, 12:14 pm, Xah Lee <xah...@gmail.com> wrote:
> (defun my-process-file (fpath)
>   "Process the file at path FPATH ..."
>   (let ()
>     ;; create temp buffer without undo record.
>     ;; first space in temp buff name is necessary
>     (set-buffer (get-buffer-create " myTemp"))
>     (insert-file-contents fpath nil nil nil t)

I am afraid that this does not work. When using:
        (switch-to-buffer (find-file-noselect input-file t t))
        (buffer-disable-undo)
my script takes 24 seconds.
When I change those two lines to:
        (set-buffer (get-buffer-create " myTemp"))
        (insert-file-contents input-file nil nil nil t)
it takes 592 seconds. About 25 times as long.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Disable undo in batch mode
  2009-10-11 14:22   ` Decebal
@ 2009-10-13 17:05     ` Xah Lee
  0 siblings, 0 replies; 6+ messages in thread
From: Xah Lee @ 2009-10-13 17:05 UTC (permalink / raw)
  To: help-gnu-emacs

On Oct 11, 7:22 am, Decebal <cldwester...@gmail.com> wrote:
> On Oct 11, 12:14 pm,XahLee <xah...@gmail.com> wrote:
>
> > (defun my-process-file (fpath)
> >   "Process the file at path FPATH ..."
> >   (let ()
> >     ;; create temp buffer without undo record.
> >     ;; first space in temp buff name is necessary
> >     (set-buffer (get-buffer-create " myTemp"))
> >     (insert-file-contents fpath nil nil nil t)
>
> I am afraid that this does not work. When using:
>         (switch-to-buffer (find-file-noselect input-file t t))
>         (buffer-disable-undo)
> my script takes 24 seconds.
> When I change those two lines to:
>         (set-buffer (get-buffer-create " myTemp"))
>         (insert-file-contents input-file nil nil nil t)
> it takes 592 seconds. About 25 times as long.

am annoyed by your feedback.

you asked for some tips about batch text processing. I gave you quite
a few, including a explicit answer to you question of how to disable
undo, and a explicit method to locate that answer, as well as a full
tutorial on batch text processing.

you shot back by saying a specific code i suggested, that it “does not
work”, in comparsion to a code you have used but have not disclosed
before, nor what exactly what your code is doing, and no mention of
thanks nor whether my other tips was or was not helpful.

What is the purpose of your message?

technically, the entire content of your message is about my code “does
not work”, with a specific timing result in seconds. Huh? Is this
supposed to be a helpful info for me? If so, perhaps you would be more
specific. For example, do some research, and do a conclusive report
on:

why this code:

>         (switch-to-buffer (find-file-noselect input-file t t))
>         (buffer-disable-undo)

is “25 times” faster than

>         (set-buffer (get-buffer-create " myTemp"))
>         (insert-file-contents input-file nil nil nil t)

For example, in what condition? why it is so? what tips you might
give, as a choice between these two? and further, i suggested with-
temp-buffer, with-temp-file, have you explored them?

  Xah
∑ http://xahlee.org/^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-10-13 17:05 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-11  1:49 Disable undo in batch mode Decebal
2009-10-11  3:18 ` Vassil Nikolov
2009-10-11 12:51   ` Decebal
2009-10-11 10:14 ` Xah Lee
2009-10-11 14:22   ` Decebal
2009-10-13 17:05     ` Xah Lee

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.