Package: emacs;
Reported by: Lars Ingebrigtsen <larsi <at> gnus.org>
Date: Fri, 28 Jan 2022 15:04:02 UTC
Severity: normal
Tags: confirmed
Found in version 29.0.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Message #19 received at 53606 <at> debbugs.gnu.org (full text, mbox):
From: Mauro Aranda <maurooaranda <at> gmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 53606 <at> debbugs.gnu.org Subject: Re: bug#53606: 29.0.50; Very slow Customize buffer for bibtex-biblatex-entry-alist Date: Sun, 10 Sep 2023 06:49:29 -0300
[Message part 1 (text/plain, inline)]
On 10/9/23 02:01, Eli Zaretskii wrote: >> Date: Sat, 9 Sep 2023 19:51:23 -0300 >> From: Mauro Aranda <maurooaranda <at> gmail.com> >> >> On 9/9/23 19:23, Mauro Aranda wrote: >> > Based on the above results and since there's no lost in functionality, I >> > propose to make the changes to the bibtex-entry-alist widget. It is a >> > net gain in speed, and it might make the wait bearable. >> >> Hmm, spoke too soon :-(. Using option is not as redundant as I >> thought it was. Using `choice's alone would set all the values that >> are nil in the group like so: ("author" nil nil nil), while using it >> with `option' allows for setting it as: ("author") >> >> So that's something to consider. > > Thanks for looking into this issue. > > Could you please profile this slow operation and post the completely > unfolded profile? I think we should try to understand what exactly > takes so much time in this case. Here it is. I also attach the result of C-x C-w in the report buffer, just in case. 25262 97% - call-interactively 25262 97% - funcall-interactively 25262 97% - eval-last-sexp 25262 97% - elisp--eval-last-sexp 25262 97% - eval 25262 97% - progn 25262 97% - progn 25258 97% - customize-option 25246 97% - custom-buffer-create 25246 97% - custom-buffer-create-internal 24870 96% - mapcar 24854 95% - #<compiled -0x17c1d5ffa7b0b3ca> 24854 95% - widget-create 24854 95% - widget-apply 24854 95% - widget-default-create 24854 95% - widget-apply 24854 95% - custom-variable-value-create 24842 95% - widget-create-child-and-convert 24842 95% - widget-apply 24842 95% - widget-default-create 24838 95% - widget-apply 24834 95% - widget-type-value-create 24834 95% - widget-create-child-value 24834 95% - widget-apply 24834 95% - widget-default-create 24834 95% - widget-apply 24834 95% - widget-editable-list-value-create 24834 95% - widget-editable-list-entry-create 24690 95% - widget-create-child-value 24690 95% - widget-apply 24690 95% - widget-default-create 24682 95% - widget-apply 24682 95% - widget-group-value-create 24670 95% - widget-create-child-value 24670 95% - widget-apply 24670 95% - widget-default-create 24334 93% - widget-apply 15974 61% - widget-checklist-value-create 15970 61% - widget-checklist-add-item 7107 27% - widget-create-child 7099 27% - widget-apply 7099 27% - widget-default-create 4187 16% delete-char 2120 8% - widget-apply 2120 8% - widget-choice-value-create 2112 8% - widget-create-child-value 2108 8% - widget-apply 2108 8% - widget-default-create 1428 5% delete-char 308 1% princ 4 0% re-search-forward 4 0% widget-put 4 0% - widget-inline-p 4 0% widget-get 12 0% - substitute-command-keys 4 0% - generate-new-buffer 4 0% get-buffer-create 4 0% make-closure 12 0% - widget-specify-button 12 0% - widget-apply 8 0% - widget-default-button-face-get 4 0% widget-get 4 0% - widget-apply 4 0% - widget-default-button-face-get 4 0% - widget-apply 4 0% - widget-default-button-face-get 4 0% - widget-apply 4 0% - widget-default-button-face-get 4 0% - widget-apply 4 0% - widget-default-button-face-get 4 0% - widget-apply 4 0% - widget-default-button-face-get 4 0% - widget-apply 4 0% - widget-default-button-face-get 4 0% - widget-apply 4 0% - widget-default-button-face-get 4 0% widget-get 8 0% re-search-forward 4 0% undo-auto--undoable-change 4 0% widget-get 4 0% widget-put 4 0% widget-get-indirect 4 0% - widget-copy 4 0% - widget-apply 4 0% - widget-types-copy 4 0% - mapcar 4 0% - widget-copy 4 0% widget-apply 4027 15% - apply 4027 15% - widget-create-child-and-convert 4007 15% - widget-apply 4007 15% - widget-default-create 2712 10% delete-char 743 2% - widget-apply 739 2% - widget-toggle-value-create 492 1% - widget-image-insert 492 1% - insert-image 4 0% - add-text-properties 4 0% undo-auto--undoable-change 207 0% - widget-image-find 199 0% - find-image 152 0% - apply 152 0% - create-image 148 0% - image-type 148 0% - image-type-from-file-header 68 0% - insert-file-contents-literally 64 0% - insert-file-contents 4 0% - after-insert-file-set-coding 4 0% find-new-buffer-file-coding-system 60 0% file-readable-p 4 0% image-type-from-buffer 4 0% - #<compiled -0x1c8e7723716d5d9f> 4 0% kill-buffer 4 0% set-buffer-multibyte 4 0% image-compute-scaling-factor 43 0% - image-search-load-path 31 0% file-readable-p 8 0% expand-file-name 4 0% image--set-property 28 0% - substitute-command-keys 12 0% - #<compiled -0x1c8e7723a0f1519f> 12 0% - kill-buffer 8 0% - replace-buffer-in-windows 4 0% window-normalize-buffer 4 0% - unrecord-window-buffer 4 0% - assq-delete-all 4 0% assoc-delete-all 8 0% - generate-new-buffer 8 0% get-buffer-create 8 0% widget-get 4 0% - widget-value 4 0% widget-apply 24 0% - widget-specify-button 8 0% widget-get 4 0% make-overlay 4 0% overlay-put 4 0% functionp 20 0% re-search-forward 4 0% - widget-clear-undo 4 0% buffer-disable-undo 16 0% - apply 16 0% - widget-convert 12 0% - widget-value-convert-widget 12 0% widget-get 2492 9% - widget-create-child-value 2492 9% - widget-apply 2492 9% - widget-default-create 1300 5% delete-char 956 3% - widget-apply 956 3% - widget-choice-value-create 956 3% - widget-create-child-value 956 3% - widget-apply 948 3% - widget-default-create 628 2% delete-char 80 0% - widget-apply 80 0% widget-field-value-create 52 0% princ 8 0% re-search-forward 8 0% - #<compiled 0x66e1b40451af649> 8 0% - widget-sexp-value-to-internal 4 0% string-match 4 0% - pp-to-string 4 0% - #<compiled -0x1c8e7722b2c0b59f> 4 0% kill-buffer 16 0% - substitute-command-keys 8 0% - #<compiled -0x1c8e77397563719f> 8 0% - kill-buffer 8 0% - replace-buffer-in-windows 8 0% - unrecord-window-buffer 4 0% window-prev-buffers 4 0% - window-normalize-window 4 0% window-live-p 4 0% - generate-new-buffer 4 0% get-buffer-create 8 0% - widget-specify-button 4 0% widget-get 4 0% - widget-apply 4 0% - widget-default-mouse-face-get 4 0% widget-get 4 0% re-search-forward 4 0% - widget-clear-undo 4 0% buffer-disable-undo 1864 7% delete-char 8 0% re-search-forward 4 0% - widget-apply 4 0% - widget-default-deactivate 4 0% - widget-specify-inactive 4 0% make-overlay 4 0% widget--should-indent-p 4 0% widget-get 7848 30% - widget-editable-list-value-create 7828 30% - widget-editable-list-entry-create 4112 15% - widget-create-child-value 4088 15% - widget-apply 4088 15% - widget-default-create 3576 13% - widget-apply 3576 13% - widget-group-value-create 2864 11% - widget-create-child-value 2848 10% - widget-apply 2840 10% - widget-default-create 2084 8% delete-char 8 0% re-search-forward 8 0% - widget-copy 4 0% widget-apply 4 0% widget-get 4 0% widget-put 696 2% insert-char 8 0% - widget-match-inline 4 0% - widget-inline-p 4 0% widget-get 4 0% - widget-apply 4 0% - widget-checklist-match-inline 4 0% - widget-match-inline 4 0% - widget-inline-p 4 0% - widget-apply 4 0% widget-choice-inline-bubbles-p 4 0% widget--should-indent-p 348 1% delete-char 4 0% - undo-auto--undoable-change 4 0% undo-auto--boundary-ensure-timer 20 0% - widget-copy 20 0% - widget-apply 20 0% - widget-types-copy 20 0% - mapcar 20 0% - widget-copy 20 0% - widget-apply 12 0% - widget-types-copy 12 0% - mapcar 12 0% - widget-copy 12 0% - widget-apply 12 0% - widget-types-copy 12 0% - mapcar 12 0% - widget-copy 12 0% - widget-apply 8 0% - widget-types-copy 8 0% - mapcar 8 0% - widget-copy 8 0% widget-apply 4 0% widget-get 2472 9% - apply 2472 9% - widget-create-child-and-convert 2468 9% - widget-apply 2468 9% - widget-default-create 1784 6% delete-char 336 1% - widget-apply 336 1% - widget-push-button-value-create 8 0% - substitute-command-keys 4 0% buffer-string 12 0% - widget-specify-button 8 0% - widget-apply 8 0% - widget-default-mouse-face-get 8 0% - widget-apply 8 0% - widget-default-mouse-face-get 8 0% - widget-apply 4 0% - widget-default-mouse-face-get 4 0% - widget-apply 4 0% - widget-default-mouse-face-get 4 0% widget-get 4 0% widget-get 4 0% re-search-forward 4 0% widget-get 932 3% delete-char 152 0% insert-char 16 0% - widget-match-inline 16 0% - widget-apply 8 0% - widget-group-match 8 0% - widget-group-match-inline 4 0% - widget-match-inline 4 0% widget-apply 8 0% - widget-editable-list-match 8 0% - widget-editable-list-match-inline 8 0% - widget-match-inline 8 0% - widget-apply 8 0% - widget-group-match 8 0% - widget-group-match-inline 8 0% - widget-match-inline 8 0% - widget-apply 8 0% - widget-checklist-match-inline 4 0% - widget-match-inline 4 0% - widget-inline-p 4 0% - widget-apply 4 0% - widget-choice-inline-bubbles-p 4 0% widget-get 4 0% - widget-checklist-match-up 4 0% - widget-match-inline 4 0% - widget-apply 4 0% - widget-choice-match 4 0% - widget-apply 4 0% widget-restricted-sexp-match 388 1% widget-field-value-create 124 0% - widget-editable-list-format-handler 116 0% - apply 116 0% - widget-create-child-and-convert 116 0% - widget-apply 116 0% - widget-default-create 96 0% delete-char 20 0% - widget-apply 20 0% widget-push-button-value-create 8 0% insert-char 264 1% delete-char 4 0% - widget-specify-sample 4 0% widget-apply 4 0% - undo-auto--undoable-change 4 0% undo-auto--boundary-ensure-timer 4 0% - substitute-command-keys 4 0% - #<compiled -0x1c8e77201f7fa59f> 4 0% - kill-buffer 4 0% - replace-buffer-in-windows 4 0% - unrecord-window-buffer 4 0% window-prev-buffers 12 0% insert-char 4 0% delete-char 92 0% - apply 92 0% - widget-create-child-and-convert 92 0% - widget-apply 92 0% - widget-default-create 64 0% delete-char 16 0% - widget-apply 16 0% widget-push-button-value-create 40 0% delete-char 4 0% custom-magic-value-create 8 0% - widget-add-documentation-string-button 8 0% - apply 8 0% - widget-create-child-and-convert 8 0% - widget-apply 8 0% - widget-default-create 4 0% delete-char 4 0% - widget-apply 4 0% widget-documentation-string-value-create 4 0% - custom-add-parent-links 4 0% - mapatoms 4 0% - #<compiled 0x2608cc6bf83bc8> 4 0% - widget-create-child-and-convert 4 0% - widget-apply 4 0% - widget-default-create 4 0% delete-char 16 0% - #<compiled -0xf2f5b00c7bd4f2d> 16 0% - widget-apply 16 0% - widget-default-value-inline 16 0% - widget-value 16 0% - widget-apply 16 0% - widget-editable-list-value-get 16 0% - mapcar 16 0% - #<compiled -0xf2f5b00c7bd4f2d> 16 0% - widget-apply 16 0% - widget-default-value-inline 16 0% - widget-value 16 0% - widget-apply 8 0% - widget-editable-list-value-get 8 0% - mapcar 8 0% - #<compiled -0xf2f5b00c7bd4f2d> 8 0% - widget-apply 8 0% - widget-default-value-inline 8 0% - widget-value 8 0% - widget-apply 8 0% - widget-editable-list-value-get 8 0% - mapcar 4 0% - #<compiled -0xf2f5b00c7bd4f2d> 4 0% - widget-apply 4 0% - widget-default-value-inline 4 0% widget-get 8 0% - widget-checklist-value-get 4 0% - widget-apply 4 0% - widget-child-value-inline 4 0% - widget-apply 4 0% - widget-default-value-inline 4 0% - widget-value 4 0% widget-apply 4 0% - widget-value 4 0% widget-apply 368 1% widget-setup 8 0% - mapc 8 0% - custom-magic-reset 8 0% - widget-value-set 8 0% - widget-apply 8 0% - widget-default-value-set 8 0% - widget-apply 4 0% - widget-default-delete 4 0% - widget-apply 4 0% - widget-children-value-delete 4 0% - mapc 4 0% - widget-delete 4 0% - widget-apply 4 0% widget-default-delete 4 0% - widget-default-create 4 0% - widget-apply 4 0% - custom-magic-value-create 4 0% - widget-create-child-and-convert 4 0% - widget-apply 4 0% - widget-default-create 4 0% delete-char 8 0% - byte-code 8 0% - require 8 0% - load-with-code-conversion 8 0% - eval-buffer 8 0% read 4 0% read 4 0% - profiler-stop 4 0% profiler-cpu-log 635 2% Automatic GC 4 0% - ... 4 0% - widget-types-convert-widget 4 0% - mapcar 4 0% - widget-convert 4 0% - widget-types-convert-widget 4 0% - mapcar 4 0% - widget-convert 4 0% - widget-types-convert-widget 4 0% - mapcar 4 0% - widget-convert 4 0% - widget-types-convert-widget 4 0% - mapcar 4 0% - widget-convert 4 0% - widget-apply 4 0% - #<compiled 0x66e1b40451af649> 4 0% - widget-sexp-value-to-internal 4 0% pp-to-string
[profiler-data (text/plain, attachment)]
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.