>>>> "Ben" == Ben Wing <ben(a)xemacs.org>
writes:
Ben> Hrvoje Niksic wrote:
> Ben Wing <ben(a)xemacs.org> writes:
>> Hrvoje, if you're willing to try some profiling in a current 21.5,
> I don't have time for it now, and I'm reluctant to work on the 21.5
> code base anyway, because of the reasons outlined earlier. I
> started this thread to make other people aware of the problem.
>
> Creating a large nnml group shouldn't be hard. For example, enter
> Gnus, press "n" when asked to go offline, then press "y" when
asked
> whether to continue. You can create an empty nnml group using `G m
> testgroup RET nnml RET'. Then enter an existing mbox using `G f
> <file-name> RET' (don't mind if this is slow, it's supposed to be
> slow). Press `C-x h' to select the whole buffer, followed by `B c
> nnml:tesgroup RET'. You should have a working nnml group with a
> bunch of messages.
Ben> well, we all have limited time. if you ever change
your mind, i'd
Ben> be glad for your help. in practice, profiling 21.5 is more useful
Ben> than
Ben> 21.4 since very little more work will be done on 21.4.
Is this what you were after? This is from a profile-key-sequence in
21.5b20 on Linux, no error checking, entering a large (2200 articles)
nnml group.
Function Name Ticks/Total %Usage Calls GC-Usage/ Total
===========================================/===== ====== ===== ========/=======
(in garbage collection) 4458/ 4458 51.247 156
(profile overhead) 1036/ 1036 11.909
(in map-extents-internal) 750/ 755 8.622 218120 1152928/1152928
looking-at 332/ 337 3.817 88212 3140404/3140404
bq-process-2 290/ 1978 3.334 887495 15788648/21176540
featurep 190/ 190 2.184 100986
re-search-forward 146/ 149 1.678 89140 1182416/1182416
kill-all-local-variables 145/ 145 1.667 5198
gnus-xmas-format 84/ 625 0.966 5200 187488/6891068
string-match 75/ 75 0.862 35722 594960/ 594960
kill-buffer 66/ 131 0.759 10726 257448/ 772296
gnus-user-format-function-b 61/ 5068 0.701 2598 328568/53798736
byte-code 47/ 957 0.540 21691 1676504/9915304
gnus-summary-prepare-threads 44/ 7513 0.506 1 441084/67178696
decode-coding-region 42/ 43 0.483 5217 626040/ 626040
gnus-simplify-subject-fuzzy 38/ 281 0.437 4892 96/ 915424
(in char-byte conversion) 38/ 38 0.437 2060174
get-buffer-create 38/ 41 0.437 21122 11500600/11500600
bbdb-records 36/ 684 0.414 7413 480/8779088
bq-process-1 36/ 49 0.414 317845 4991652/4991652
replace-match 34/ 35 0.391 21075 3152/ 3152
verify-visited-file-modtime 29/ 31 0.333 4817 238832/ 238832
mm-subst-char-in-string 26/ 25 0.299 10551 1080/ 1248
gnus-set-work-buffer 25/ 32 0.287 4893 0/ 28
#<compiled-function nil "...(157)" [gnus-tmp-replied gnus-tmp-unread
gnus-tmp-header gnus-tmp-lines need val gnus-user-format-function-b char-to-string
gnus-put-text-property gnus-xmas-format %s%s %s%s 4 gnus-correct-length 0 make-string ?\
nil eval gnus-summary-from-or-to-or-newsgroups 20 gnus-correct-substring %s: %s
int-to-string gnus-summary-number-of-articles-in-thread boundp thread 2
gnus-tmp-score-char gnus-tmp-indentation gnus-tmp-opening-bracket gnus-tmp-from
gnus-tmp-closing-bracket gnus-mouse-face-prop gnus-mouse-face gnus-tmp-level
gnus-tmp-subject-or-nil] 12>
24/ 7068 0.276 2598 227004/65137268
cond 23/ 693 0.264 38666 0/6209820
let 20/ 4313 0.230 25140 0/44675488
save-current-buffer 19/ 4274 0.218 10388 0/44145164
search-forward 18/ 30 0.207 28533
buffer-local-variables 18/ 32 0.207 7415 8544912/8544912
put-text-property 17/ 88 0.195 16803 1149592/1149592
forward-word 16/ 16 0.184 11488 1178892/1178892
setq 16/ 63 0.184 170408 0/ 450608
char-syntax 16/ 16 0.184 310 1528956/1528956
match-string 15/ 16 0.172 52795 589708/ 589708
#<compiled-function (&rest args) "...(28)" [result args reverse cons] 4
663101>
15/ 92 0.172 28659 3553764/4700124
insert-file-contents-internal 14/ 14 0.161 1 128/ 128
sort 14/ 31 0.161 636
char-width 13/ 246 0.149 95419
set-buffer 13/ 13 0.149 10388
subst-char-in-region 11/ 178 0.126 2 48/ 48
when 11/ 2196 0.126 67203 432/27534744
gnus-summary-number-of-articles-in-thread
11/ 11 0.126 3835 0/ 14844
erase-buffer 11/ 11 0.126 10103 0/ 84
#<compiled-function (char) "...(8)" [char length char-width] 3>
10/ 257 0.115 89938
generate-new-buffer-name 10/ 10 0.115 10724 17192/ 17192
while 10/ 4018 0.115 37675 0/43926860
if 9/ 2004 0.103 138500 0/22217668
bq-list* 9/ 483 0.103 28659 216/7168788
charset-property 8/ 8 0.092 95419
skip-chars-forward 8/ 8 0.092 44460
mapcar 7/ 279 0.080 23315 1200396/1249544
bq-comma 6/ 8 0.069 47765 573180/ 573180
#<compiled-function (buffer &rest body) "...(8)" [body buffer
save-current-buffer set-buffer] 3 696316>
6/ 11 0.069 10388 1433568/1433568
read 6/ 21 0.069 9452
vectorp 6/ 5 0.069 892167
insert-buffer-substring 6/ 7 0.069 3768 190284/ 190284
buffer-string 6/ 34 0.069 20434 0/ 963120
backquote 6/ 2539 0.069 12149 0/29294804
save-excursion 6/ 858 0.069 4372 0/5875944
append 5/ 5 0.057 11650 74592/ 74592
or 5/ 154 0.057 91182 0/ 938124
insert 5/ 5 0.057 5519 0/ 168
mail-decode-encoded-word-string 5/ 462 0.057 5206 11544/7426796
gnus-extract-address-components 5/ 43 0.057 2598 425820/ 879336
mm-decode-coding-string 5/ 359 0.057 5217 216/6885340
gnus-summary-highlight-line 5/ 61 0.057 2598 0/ 197564
reverse 5/ 6 0.057 29590 1182936/1182936
gnus-score-string< 5/ 5 0.057 40193
member* 4/ 7 0.046 10726 514848/ 514848
scan-sexps 4/ 4 0.046 3496 350064/ 350064
gnus-summary-limit-children 4/ 4 0.046 2602 31152/ 35016
buffer-substring 4/ 7 0.046 20434 963120/ 963120
condition-case 4/ 40 0.046 3497 0/ 350100
bbdb-buffer 3/ 3 0.034 7413
gnus-score-followup 3/ 42 0.034 1 31272/ 159072
prin1-to-string 3/ 3 0.034 1 59390/ 59390
list 3/ 6 0.034 69467 2469660/2469660
mm-decode-coding-region 3/ 4 0.034 340 40800/ 40800
#<subr when> 3/ 18 0.034 67203 6467640/6467640
progn 3/ 1886 0.034 49249 0/21574624
charset-width 3/ 20 0.034 95419
narrow-to-region 3/ 5 0.034 12224 96/ 96
select-buffer-killed-text 2/ 8 0.023 10726
intern 2/ 2 0.023 11039 120456/ 120456
and 2/ 189 0.023 172066 0/1344516
unless 2/ 25 0.023 5192 0/ 458364
eval 2/ 7073 0.023 10406 0/65145236
gnus-correct-substring 2/ 15 0.023 261 23920/ 23920
regexp-quote 2/ 2 0.023 3198 126352/ 126352
point-at-eol 2/ 3 0.023 5207
mail-extract-address-components 2/ 4315 0.023 2598 0/44675156
get-text-property 2/ 16 0.023 16267
gnus-score-string 2/ 17 0.023 1 31224/ 158524
assq 2/ 2 0.023 21566
eq 2/ 0 0.023 216156
gnus-put-text-property-excluding-characters-with-faces
2/ 38 0.023 2599 116/ 197640
next-single-property-change 2/ 9 0.023 3226
gnuserv-buffer-clients 2/ 2 0.023 10726
gnus-score-headers 2/ 61 0.023 1 124908/ 461004
char-charset 2/ 2 0.023 95419
set-text-properties 2/ 3 0.023 2598
get-buffer 2/ 2 0.023 4925
(in redisplay) 2/ 2 0.023 7 7188/ 8124
gnus-thread-sort-by-number 2/ 2 0.023 17889
downcase-region 2/ 2 0.023 2596
bq-process 2/ 2011 0.023 12149 24/21353504
gnus-correct-length 2/ 278 0.023 10395 0/1079256
with-current-buffer 2/ 4309 0.023 10388 24/44675156
fundamental-mode 2/ 147 0.023 5196 72/ 72
(in internal-external conversion) 2/ 2 0.023 4851
funcall 2/ 7071 0.023 2603 0/65143140
delete-other-windows 2/ 2 0.023 1 6912/ 6912
goto-char 2/ 3 0.023 52737
select-buffer-killed-default 2/ 5 0.023 10726
natnump 2/ 3 0.023 40868
syntax-string-to-code 1/ 1 0.011 594 0/ 42768
mail-extr-safe-move-sexp 1/ 43 0.011 3496 0/ 350064
eobp 1/ 1 0.011 35836
gnus-inverse-list-range-intersection 1/ 1 0.011 1
copy-sequence 1/ 1 0.011 1735 66576/ 66576
put-char-table 1/ 1 0.011 594
gnus-list-of-unread-articles 1/ 1 0.011 2 53400/ 53400
gnus-thread-loop-p 1/ 1 0.011 322 9036/ 9036
delq 1/ 1 0.011 9573
quote 1/ 1 0.011 208182
#<compiled-function nil "...(166)" [gnus-dormant-mark uncached default-low
default-high score mark gnus-summary-cancelled gnus-summary-high-undownloaded
gnus-summary-low-undownloaded gnus-summary-normal-undownloaded gnus-summary-high-ticked
gnus-summary-low-ticked gnus-summary-normal-ticked gnus-summary-high-ancient
gnus-summary-low-ancient gnus-summary-normal-ancient gnus-summary-high-unread
gnus-summary-low-unread gnus-summary-normal-unread gnus-summary-high-read
gnus-summary-low-read gnus-summary-normal-read gnus-ticked-mark gnus-ancient-mark
gnus-unread-mark gnus-canceled-mark] 2>
1/ 1 0.011 2598
gnus-summary-from-or-to-or-newsgroups 1/ 48 0.011 2598 76/ 965208
gnus-sorted-nunion 1/ 1 0.011 1 26712/ 26712
not 1/ 1 0.011 57611
browse-url-delete-temp-file 1/ 1 0.011 10726
bbdb-record-name 1/ 1 0.011 1570
check-menu-syntax 1/ 4 0.011 634 0/ 256
mail-extr-skip-whitespace-forward 1/ 13 0.011 38978
make-string 1/ 2 0.011 7171 179848/ 179848
gnus-remove-from-range 1/ 9 0.011 2 0/ 83016
nnheader-nov-delete-outside-range 1/ 4 0.011 1
cons 1/ 2 0.011 76702 920424/ 920424
bbdb-record-getprop 1/ 1 0.011 1784
make-vector 1/ 1 0.011 3 21552/ 21552
gnus-update-read-articles 1/ 10 0.011 1 41856/ 125048
char-to-string 1/ 2 0.011 13586 326064/ 326064
run-hooks 1/ 67 0.011 2609 0/ 231500
rfc2047-decode-encoded-words 1/ 65 0.011 171 12964/ 504656
delete-region 1/ 1 0.011 632
coding-system-property 1/ 1 0.011 576 59696/ 59696
quoted-printable-decode-region 1/ 1 0.011 137 4560/ 4600
point-max 1/ 1 0.011 18830
= 1/ 1 0.011 27504
1/ 1 0.011 22181
fume-narrow-to-region 1/ 1 0.011 12224
widen 1/ 2 0.011 7796 48/ 48
gnus-run-hooks 1/ 64 0.011 2607 31296/ 256676
[... rest snipped ...]
Let me know if you want the full profile, or one from a recent CVS
build.
--J.