From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: org-shifmetadown/up are slow Date: Mon, 3 Aug 2009 06:29:08 +0200 Message-ID: References: <20524da70906212031y2b2521e7o7f465741c4e0da07@mail.gmail.com> <20524da70906221143t2b59ea89p2852af96223a0eea@mail.gmail.com> <20524da70907072207u4a19a5c2k921729ad6356c35@mail.gmail.com> Mime-Version: 1.0 (Apple Message framework v935.3) Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MXpAj-0003Q4-Ne for emacs-orgmode@gnu.org; Mon, 03 Aug 2009 00:29:17 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MXpAf-0003MC-Ke for emacs-orgmode@gnu.org; Mon, 03 Aug 2009 00:29:17 -0400 Received: from [199.232.76.173] (port=52668 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MXpAf-0003Ly-Bh for emacs-orgmode@gnu.org; Mon, 03 Aug 2009 00:29:13 -0400 Received: from mail-ew0-f211.google.com ([209.85.219.211]:61422) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MXpAe-0001W7-Lx for emacs-orgmode@gnu.org; Mon, 03 Aug 2009 00:29:13 -0400 Received: by ewy7 with SMTP id 7so1038083ewy.42 for ; Sun, 02 Aug 2009 21:29:12 -0700 (PDT) In-Reply-To: <20524da70907072207u4a19a5c2k921729ad6356c35@mail.gmail.com> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Samuel Wales Cc: emacs-orgmode@gnu.org Hi Samuel, On Jul 8, 2009, at 7:07 AM, Samuel Wales wrote: > I think that some of this is slow for inherent emacs reasons. Simply > doing down arrow can sometimes be slow. Yes, if there is *lots* of hidden text the cursor has to jump over. > However, moving subtrees is > very slow. Dp you think it's mostly outline-mode? Is it possible to > defsubst after the fact? Please pull from git, this problem should have disappeared, I simplified the cleanup of the display after moving a subtree which became *very* expensive for entries with very many siblings. So the reason was Org in a way, but the reason why this operation was slow is because outline functions used are slow. What I have done now as well is advising outline-end-of-subtree to use my own version when in Org-mode, so that any outline commands using it will now be much faster. The reason why outline functions are so extremely slow for some operations are: - they have been written in full generality, with possibly weird strings as outline headings, so they need to find each and every heading and compute the outline level. Org, on the other hand, knows that the headline level is directly given by the number of stars and can directly search for the right kind of heading that will terminate the subtree. - Outline functions have been written with book-like structure in mind, i.e. with a limited number of nodes. Large and deep lists as we have them will cause this code to perform badly. HTH - Carsten > > Thanks. > > On Mon, Jun 22, 2009 at 11:43, Samuel Wales > wrote: >> On Sun, Jun 21, 2009 at 22:41, Carsten Dominik> > wrote: >>> could you please re-run these tests, and instrument for elp not >>> only org, but also the entire outline package? Seems to me that >>> much of this time is spent in a non-org function. >> >> Function Name Call >> Count Elapsed Time Average Time >> ============================================================ >> ========== ============ ============ >> org-move-subtree-down 97 >> 213.619874 2.2022667422 >> org-compact-display-after-subtree-move 96 >> 203.12814400 2.1159181666 >> outline-end-of-subtree 392 >> 156.43101299 0.3990587066 >> outline-next-heading 1925977 >> 139.79470300 7.258...e-05 >> outline-flag-subtree 104 >> 114.38383400 1.0998445576 >> org-shiftmetadown 51 >> 109.818661 2.1533070784 >> org-shiftmetaup 46 >> 103.837425 2.2573353260 >> org-move-subtree-up 46 >> 103.821831 2.2569963260 >> outline-map-region 191 >> 40.191857999 0.2104285759 >> org-outline-level 1905188 >> 25.819659000 1.355...e-05 >> org-cycle-hide-drawers 183 >> 11.270871000 0.0615894590 >> org-flag-drawer 29066 >> 5.4703569999 0.0001882046 >> outline-next-visible-heading 386 >> 4.2212859999 0.0109359740 >> outline-get-last-sibling 46 >> 2.634253 0.0572663695 >> outline-previous-visible-heading 335 >> 2.6118669999 0.0077966179 >> org-shiftmetaright 8 >> 2.3084010000 0.2885501250 >> org-up-heading-safe 192 >> 2.1500000000 0.0111979166 >> org-end-of-subtree 234 >> 1.9466359999 0.0083189572 >> outline-get-next-sibling 51 >> 1.6207019999 0.0317784705 >> outline-flag-region 30978 >> 1.4932559999 4.820...e-05 >> org-show-empty-lines-in-parent 96 >> 1.132384 0.0117956666 >> outline-up-heading 8 >> 0.335284 0.0419105 >> outline-previous-heading 6570 >> 0.2229150000 3.392...e-05 >> outline-show-heading 1241 >> 0.0924400000 7.448...e-05 >> outline-back-to-heading 1624 >> 0.0664180000 4.089...e-05 >> org-mouse-down-mouse 1 >> 0.063905 0.063905 >> outline-end-of-heading 1634 >> 0.0632650000 3.871...e-05 >> outline-on-heading-p 1903 >> 0.0591330000 3.107...e-05 >> org-back-over-empty-lines 341 >> 0.0572220000 0.0001678064 >> org-save-markers-in-region 96 >> 0.0429849999 0.0004477604 >> org-cycle-show-empty-lines 192 >> 0.0419749999 0.0002186197 >> org-back-to-heading 642 >> 0.0355740000 5.541...e-05 >> org-agenda-save-markers-for-cut-and-paste 96 >> 0.035326 0.0003679791 >> org-do-emphasis-faces 197 >> 0.0349929999 0.0001776294 >> org-first-sibling-p 96 >> 0.034133 0.0003555520 >> org-map-tree 16 >> 0.0297049999 0.0018565624 >> org-show-entry 87 >> 0.0282949999 0.0003252298 >> org-at-table-p 113 >> 0.0230579999 0.0002040530 >> org-activate-tags 310 >> 0.0217709999 7.022...e-05 >> org-shiftmetaleft 8 >> 0.0200029999 0.0025003749 >> org-activate-footnote-links 196 >> 0.0184260000 9.401...e-05 >> org-set-tags 16 >> 0.0175759999 0.0010984999 >> org-demote-subtree 8 >> 0.017286 0.00216075 >> org-promote-subtree 8 >> 0.015923 0.001990375 >> org-on-heading-p 129 >> 0.0156239999 0.0001211162 >> org-activate-plain-links 311 >> 0.0152919999 4.917...e-05 >> org-demote 8 >> 0.0135389999 0.0016923749 >> org-promote 8 >> 0.01195 0.00149375 >> org-font-lock-add-tag-faces 196 >> 0.0114169999 5.824...e-05 >> org-activate-dates 275 >> 0.0104949999 3.816...e-05 >> org-activate-bracket-links 221 >> 0.007836 3.545...e-05 >> org-unfontify-region 196 >> 0.0074030000 3.777...e-05 >> org-check-and-save-marker 3840 >> 0.0069260000 1.803...e-06 >> org-get-tags-string 16 >> 0.0066159999 0.0004134999 >> org-at-heading-p 104 >> 0.0065090000 6.258...e-05 >> org-fontify-meta-lines-and-blocks 196 >> 0.0056479999 2.881...e-05 >> org-activate-angle-links 196 >> 0.0051379999 2.621...e-05 >> outline-next-preface 96 >> 0.005108 5.320...e-05 >> org-font-lock-add-priority-faces 196 >> 0.004841 2.469...e-05 >> org-activate-code 196 >> 0.003812 1.944...e-05 >> org-get-level-face 1302 >> 0.0037469999 2.877...e-06 >> org-remove-flyspell-overlays-in 366 >> 0.0031399999 8.579...e-06 >> org-fix-position-after-promote 16 >> 0.002157 0.0001348125 >> org-invisible-p 97 >> 0.0021190000 2.184...e-05 >> org-get-tag-face 126 >> 0.0020839999 1.653...e-05 >> org-move-to-column 16 >> 0.0018859999 0.0001178749 >> org-hide-wide-columns 196 >> 0.0016239999 8.285...e-06 >> org-get-todo-face 60 >> 0.0011369999 1.894...e-05 >> org-before-change-function 224 >> 0.0007810000 3.486...e-06 >> org-skip-whitespace 96 >> 0.000674 7.020...e-06 >> org-activate-target-links 196 >> 0.0006510000 3.321...e-06 >> org-font-lock-hook 196 >> 0.0005240000 2.673...e-06 >> org-do-latex-and-special-faces 196 >> 0.000437 2.229...e-06 >> org-reinstall-markers-in-region 96 >> 0.0003680000 3.833...e-06 >> org-get-valid-level 16 >> 0.0001910000 1.193...e-05 >> org-get-string-indentation 4 >> 0.000169 4.225e-05 >> org-mouse-in-region-p 1 >> 1.7e-05 1.7e-05 >> org-mouse-mark-active 1 >> 3e-06 3e-06 >> >> Thanks. >> >> >> Samuel >> > > > > -- > Myalgic encephalomyelitis causes death and severe suffering. > You can get it any time and never recover. Conflicts of > interest are destroying research. Do science and justice > matter to you? http://www.meactionuk.org.uk/ > What_Is_ME_What_Is_CFS.htm