emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: OSiUX <xuiso@osiux.com.ar>
To: emacs-orgmode@gnu.org
Subject: Re: Bug?/performance issue in org-icalendar-export-current-agenda
Date: Tue, 26 Aug 2014 15:10:54 -0300	[thread overview]
Message-ID: <20140826181054.GA1059@localhost> (raw)
In-Reply-To: <871ts3du98.fsf@berkeley.edu>

[-- Attachment #1: Type: text/plain, Size: 3856 bytes --]

El mar, 26 ago 2014, Richard Lawrence decía:

> Hi all,
> 
> I pulled from master recently (for the first time since the spring), and
> since the update, I have noticed a performance/lockup issue.  The
> problem occurs when exporting an agenda view to iCalendar format.
> 
> My Emacs version is 23.4.1 and my Org version is "8.3beta" (I am
> currently on commit 767895...)
>  
> I have traced the problem down to a call to
> `org-icalendar-export-current-agenda', though I don't know if the
> problem is in this function or in another function called by it.
> Somewhere during the execution of this function, Emacs goes to 100% CPU
> usage (on one core) and memory usage starts growing until I kill the
> process.
>  
> Here's what my setup looks like.  I have just one entry in
> `org-agenda-custom-commands' that defines the files field.  It looks
> like:
> 
>  ("Z" "Export to iCalendar file" tags "+event|+appointment" nil
>   ("~/Documents/website/public_html/lib/attachments/calendar.ics")
> 
> I normally only call this command via a cron job that exports my agenda
> files to .ics, which until recently was working fine.  But I have
> noticed I can reproduce the lockup interactively by building an agenda
> view with this command, and then calling
> `org-icalendar-export-current-agenda' on it (which is also what happens,
> a few steps down the call chain, during the cron job).
> 
> I have run some tests by manually setting org-agenda-files, then
> building this agenda and eval'ing
> 
> (org-icalendar-export-current-agenda "/tmp/agenda.ics") 
> 
> in the agenda buffer.  The results:
> 
> 1) Using just a simple three-entry test file, the export completes quickly
>    and I don't see the lockup.  
> 2) Using an agenda file which contains plenty of real data
>    (about 1000 lines) but no headlines tagged "event" or "appointment"
>    (i.e., a file for which this agenda view is empty), the call to
>    `org-icalendar-export-current-agenda' takes about 5 seconds to
>    complete, even though there are no entries to export.  During those
>    5 seconds, the Emacs process goes to 100% CPU usage.
> 3) Using a different agenda file (of about 4000 lines) which contains
>    about 75 matching headlines, the call to
>    `org-icalendar-export-current-agenda' does not complete within
>    several minutes, during which time I see 100% CPU usage and rapid
>    memory usage growth.  
> 
> So it looks to me like maybe some part of the export process uses
> exponentially more time and memory, depending on the input, since a
> minimal test case does not produce the problem.
>
> What's the next step for debugging this?  Please let me know if I can
> provide more information.  
> 
> Thanks! 
> 
> -- 
> Best,
> Richard

I use a bash script: =agenda-ascii= [0] to
reduce the list of file to export, first =grep=
current =<year-month= pattern in the *.org
files:

  #+BEGIN_EXAMPLE
    ORG_FILES=$($GREP -l "<$YEAR-$MONTH" *.org)
    echo $ORG_FILES

    if [ "$EXPORT_ICS" = "TRUE" ]
    then
        for AGENDA in $(echo $ORG_FILES)
        do
            echo EXPORT $AGENDA ...
            ARCHIVO=$DIR/$AGENDA
            $EMACS --batch -q --directory=${DIR} --visit=${ARCHIVO} --eval '(org-export-icalendar-this-file)' >/dev/null 2&>1
        done
    fi
  #+END_EXAMPLE

Actually the process, cosume 42%-97% CPU, for
526 appoinments, takes 0m 30.396s

  Org-mode version 8.3beta (release_8.3beta-264-g7a5f3f
  GNU Emacs 24.3.1 (x86_64-pc-linux-gnu) of 2014-06-06 on barber, modified by Debian


[0] https://github.com/osiris/org-bash-utils/blob/master/agenda-ascii

-- 

::

  Osiris Alejandro Gomez (OSiUX) osiux@osiux.com.ar
  DC44 95D2 0D5D D544 FC1A F00F B308 A671 9237 D36C
  http://www.osiux.com.ar http://www.altermundi.net

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  reply	other threads:[~2014-08-26 18:11 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-26 17:40 Bug?/performance issue in org-icalendar-export-current-agenda Richard Lawrence
2014-08-26 18:10 ` OSiUX [this message]
2014-08-26 19:16 ` Nicolas Goaziou
2014-08-26 19:59   ` Richard Lawrence

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=20140826181054.GA1059@localhost \
    --to=xuiso@osiux.com.ar \
    --cc=emacs-orgmode@gnu.org \
    /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).