bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#53606: 29.0.50; Very slow Customize buffer for bibtex-biblatex-entry


From: Mauro Aranda
Subject: bug#53606: 29.0.50; Very slow Customize buffer for bibtex-biblatex-entry-alist
Date: Sun, 10 Sep 2023 06:49:29 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0

On 10/9/23 02:01, Eli Zaretskii wrote:
>> Date: Sat, 9 Sep 2023 19:51:23 -0300
>> From: Mauro Aranda <maurooaranda@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

Attachment: profiler-data
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]