emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Michael Brand <michael.ch.brand@gmail.com>
To: Nathaniel Flath <flat0103@gmail.com>
Cc: org-mode List <emacs-orgmode@gnu.org>
Subject: Re: [PATH] Speedups to org-table-recalculate
Date: Sat, 11 Oct 2014 18:16:12 +0200	[thread overview]
Message-ID: <CALn3zogUBcy3VZPLb7zc3N9j8ibECi41Wbar6Hw_7xiOUvA5VA@mail.gmail.com> (raw)
In-Reply-To: <CAPrg3HB7nYtgZ4OrwerokE3mtk6rkPtRAyPPPdUxfGwwM-ekLA@mail.gmail.com>

Hi Nathaniel

On Fri, Oct 10, 2014 at 9:43 PM, Nathaniel Flath <flat0103@gmail.com> wrote:
> Mine is a pretty simple table (takes less than a second even in the original
> case):

Earlier I assumed that the issue is a very high number of messages
from the loops. Now your example table clarifies to me that the issue
is that already just one single message can take a significant time of
a message-less table recalculation (your 17 ms).

Only with this I understand now why you want to remove also the
beginning/end processing messages. Good point as it should be
noticeable at least for org-table-iterate-buffer-tables in a buffer
with many tables where each one takes a short time to recalculate.

I really wonder what the reason is that this

    (progn
      (message "%d" (random))  ;; Prevent collapsing of message lines.
      (time (message nil)))

in a terminal (emacs -nw) shows most of the times only 0.05 to 0.10 ms
but in a window it shows most of the times 8 to 22 ms (here: GNU Emacs
24.3.1 on Mac OS X 10.9). Which Emacs version and OS are you using?

For your patch I suggest to remove only the first message and to add
the time check to all other messages. This should not make the patch
noticeably slower but would keep showing the progress for table
recalculations that last more than one second. To clean up the last
loop message from the mode line I suggest to check the end messages
against the very first log time in contrast to the next log time used
for the loop messages (variables "log_first" and "log_next" instead of
just "log").

I suggest you split your patch: One for "(when eqlist" and one for the
messages. The change with the messages will then become human readable
also with a simple line diff.

> Original recalculation:  (0 0 396224 0)

> Version w/ time checks for per-field messages (still always printing at
> beginning/end of processing):(0 0 56929 0)

> Version w/ time checks and removing all beginning/end of processing
> messages: (0 0 22077 0)

> My patch:  (0 0 17405 0)

I could not reproduce a reliable difference between the last two. As
expected both did not log any message. Can you?

Michael

  reply	other threads:[~2014-10-11 16:16 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-29 20:03 [PATH] Speedups to org-table-recalculate Nathaniel Flath
2014-07-29 21:30 ` Bastien
2014-07-29 21:35   ` Nathaniel Flath
2014-07-29 21:42     ` Bastien
2014-08-01 21:56 ` Michael Brand
2014-08-07 22:57   ` Nathaniel Flath
2014-08-17 13:39     ` Michael Brand
2014-10-10  5:56       ` Nathaniel Flath
2014-10-10 10:35         ` Michael Brand
2014-10-10 19:43           ` Nathaniel Flath
2014-10-11 16:16             ` Michael Brand [this message]
2014-10-18  5:11               ` Nathaniel Flath
2014-10-19 19:57                 ` Michael Brand
2014-10-20  1:56                   ` Nathaniel Flath
2014-10-20 19:41                     ` Michael Brand
2014-10-26  0:27                       ` Nathaniel Flath
2014-10-26 19:58                         ` Michael Brand
2014-11-09 10:18                           ` Nathaniel Flath
2014-11-09 15:42                             ` Michael Brand
2014-11-12 11:51                               ` Nathaniel Flath
2014-11-12 19:09                                 ` Michael Brand
2014-11-14 13:33                                   ` Nathaniel Flath
2014-11-14 17:40                                     ` Michael Brand
2014-11-14 18:00                                       ` Nathaniel Flath
2014-11-14 20:19                                         ` Michael Brand
2014-11-14 22:37                                           ` Nicolas Goaziou
2014-11-21  9:10                                             ` Nathaniel Flath
2014-11-21 23:30                                               ` Nicolas Goaziou
2014-12-01  6:02                                                 ` Nathaniel Flath
2014-12-01  6:15                                                   ` Nathaniel Flath
2014-12-05 23:57                                                     ` Nicolas Goaziou
2014-12-08  7:35                                                       ` Nathaniel Flath
2014-12-08 12:56                                                         ` Michael Brand
2014-12-14 21:07                                                         ` Nicolas Goaziou

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CALn3zogUBcy3VZPLb7zc3N9j8ibECi41Wbar6Hw_7xiOUvA5VA@mail.gmail.com \
    --to=michael.ch.brand@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=flat0103@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).