unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Ihor Radchenko <yantar92@posteo.net>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: emacs-devel@gnu.org
Subject: Re: Markers in a gap array
Date: Thu, 04 Jul 2024 10:24:01 +0000	[thread overview]
Message-ID: <87ikxlqwu6.fsf@localhost> (raw)
In-Reply-To: <jwvv81lg65d.fsf-monnier+emacs@gnu.org>

Stefan Monnier <monnier@iro.umontreal.ca> writes:

> There's no free lunch, so this comes at the cost of slowing down other
> marker operations, which is why I'd like to hear about your experience.
> ...
> So, for instance, `save-excursion` used to do a `copy-marker` followed
> by a (set-marker m nil), both of which were, typically, O(1) and are now
> made slower.

First experience - severe performance degradation compared to master.

Some perf stats:

;; Switch to todo and mark next 3 times, on branch
    ;; 28.72%  emacs            emacs                                      [.] markers_sanity_check
    ;; 11.83%  emacs            emacs                                      [.] Fmemq
    ;;  5.31%  emacs            emacs                                      [.] process_mark_stack
    ;;  2.59%  emacs            emacs                                      [.] re_match_2_internal
    ;;  2.47%  emacs            emacs                                      [.] buf_bytepos_to_charpos
    ;;  1.60%  emacs            emacs                                      [.] Ffuncall
    ;;  1.56%  emacs            emacs                                      [.] vector_marked_p

;; master
    ;; 14.31%  emacs            emacs                                          [.] Fmemq
    ;; 11.18%  emacs            emacs                                          [.] re_match_2_internal
    ;;  3.97%  emacs            emacs                                          [.] buf_bytepos_to_charpos
    ;;  2.60%  emacs            emacs                                          [.] process_mark_stack
    ;;  2.00%  emacs            emacs                                          [.] scan_sexps_forward

;; Just building agenda, on branch
    ;; 24.69%  emacs         emacs                                           [.] markers_sanity_check
    ;; 11.32%  emacs         emacs                                           [.] re_search_2
    ;;  6.08%  emacs         emacs                                           [.] re_match_2_internal
    ;;  4.57%  emacs         emacs                                           [.] process_mark_stack
    ;;  3.61%  emacs         emacs                                           [.] funcall_subr
    ;;  2.98%  emacs         emacs                                           [.] Ffuncall
    ;;  2.79%  emacs         emacs                                           [.] Fmemq
    ;;  2.73%  emacs         emacs                                           [.] buf_bytepos_to_charpos
    ;;  2.38%  emacs         emacs                                           [.] buf_charpos_to_bytepos

;; Just building agenda, master
    ;; 13.56%  emacs           emacs                                          [.] re_match_2_internal
    ;; 12.02%  emacs           emacs                                          [.] exec_byte_code
    ;;  7.92%  emacs           emacs                                          [.] re_search_2
    ;;  6.98%  emacs           emacs                                          [.] Fmemq
    ;;  5.15%  emacs           emacs                                          [.] process_mark_stack
    ;;  4.60%  emacs           emacs                                          [.] funcall_subr
    ;;  2.58%  emacs           emacs                                          [.] Ffuncall
    ;;  1.93%  emacs           emacs                                          [.] funcall_general
    ;;  1.33%  emacs           org-element-ast-1c181933-d46555e0.eln          [.] F6f72672d656c656d656e742d74797065_org_element_type_0
    ;;  1.26%  emacs           emacs                                          [.] plist_get
    ;;  1.22%  emacs           emacs                                          [.] assq_no_quit
    ;;  1.22%  emacs           emacs                                          [.] buf_bytepos_to_charpos
    ;;  1.02%  emacs           emacs                                          [.] vector_marked_p
    ;;  0.95%  emacs           emacs                                          [.] buf_charpos_to_bytepos



-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>



  reply	other threads:[~2024-07-04 10:24 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-04  4:59 Markers in a gap array Stefan Monnier
2024-07-04 10:24 ` Ihor Radchenko [this message]
2024-07-04 13:16   ` Stefan Monnier
2024-07-04 14:30     ` Ihor Radchenko
2024-07-04 20:11       ` Stefan Monnier
2024-07-04 20:34         ` Pip Cet
2024-07-04 20:42           ` Stefan Monnier
2024-07-17 16:48             ` Helmut Eller
2024-07-18 20:46               ` Stefan Monnier
2024-07-26 19:48                 ` Helmut Eller
2024-08-05 19:54                   ` MPS: marker-vector (was: Markers in a gap array) Helmut Eller
2024-08-05 21:14                     ` MPS: marker-vector Pip Cet
2024-08-06  6:28                       ` Helmut Eller
2024-08-06  6:51                         ` Gerd Möllmann
2024-08-06 14:36                         ` Pip Cet
2024-08-06 16:15                           ` Helmut Eller
2024-08-06  3:59                     ` Gerd Möllmann
2024-08-06  6:02                       ` Helmut Eller
2024-07-04 22:24         ` Markers in a gap array Stefan Monnier
2024-07-07 12:31         ` Ihor Radchenko
2024-07-07 13:09         ` Konstantin Kharlamov

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.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=87ikxlqwu6.fsf@localhost \
    --to=yantar92@posteo.net \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /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.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).