[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
profiler-report seems to be missing data?
From: |
Charlie Andrews |
Subject: |
profiler-report seems to be missing data? |
Date: |
Wed, 15 Aug 2018 11:00:50 -0400 |
I'm trying to profile the usually excellent `find-things-fast` package to
figure out why it's slow in my project.
I started profiling with `profiler-start`, executed the command that's slow
(`ftf-find-file`), then immediately ran `profiler-report`.
This generated the following report:
Functions CPU samples %
- command-execute 1770
88%
- call-interactively 1770
88%
- apply 1770
88%
- call-interactively@ido-cr+-record-current-command
1770 88%
- apply 1770
88%
- #<subr call-interactively> 1770
88%
- funcall-interactively 1770
88%
- ftf-find-file 1597
80%
- ftf-project-files-alist 1522
76%
- ftf-project-files-hash 1330
66%
- let 1330
66%
- mapcar 1330
66%
- #<lambda 0x5458e8e0> 1024
51%
- let* 1008
50%
cons 24
1%
+ split-string 282
14%
+ maphash 192
9%
+ ido-completing-read 67
3%
+ next-line 75
3%
+ ido-switch-buffer 41
2%
+ ido-switch-buffer-other-window 38
1%
+ profiler-report 19
0%
+ ... 145
7%
+ redisplay_internal (C function) 37
1%
+ timer-event-handler 26
1%
undefined 5
0%
+ gui-set-selection 4
0%
internal-echo-keystrokes-prefix 2
0%
The profiler report seems to blame the `let*` function within
`ftf-project-files-hash`.
However, looking at that function:
(defun ftf-project-files-hash ()
"Returns a hashtable filled with file names as the key and "
(let ((default-directory (ftf-project-directory))
(table (make-hash-table :test 'equal)))
(mapcar (lambda (file)
(let* ((file-name (file-name-nondirectory file))
(full-path (expand-file-name file))
(pathlist (cons full-path (gethash file-name table
nil))))
(puthash file-name pathlist table)))
(split-string (ftf-project-files-string)))
table))
It seems incredibly unlikely that `let*` is the slow part, but rather one
of the functions called within that `let*`.
Why is `profiler-report` stopping at `let*` rather than telling me which
component of that `let*` is slow? How can I dig deeper to find which
exactly function is slow?
(FWIW, I've tried increasing profiler-max-stack-depth from 16 to 30 to no
avail.)
- profiler-report seems to be missing data?,
Charlie Andrews <=
- Re: profiler-report seems to be missing data?, Eli Zaretskii, 2018/08/15
- Re: profiler-report seems to be missing data?, Charlie Andrews, 2018/08/16
- Re: profiler-report seems to be missing data?, Eli Zaretskii, 2018/08/16
- Re: profiler-report seems to be missing data?, Michael Heerdegen, 2018/08/16
- Re: profiler-report seems to be missing data?, Charlie Andrews, 2018/08/16
- Re: profiler-report seems to be missing data?, Eli Zaretskii, 2018/08/16
- Re: profiler-report seems to be missing data?, Charlie Andrews, 2018/08/16
- Re: profiler-report seems to be missing data?, Eli Zaretskii, 2018/08/16
- Re: profiler-report seems to be missing data?, Michael Heerdegen, 2018/08/16
- Re: profiler-report seems to be missing data?, Eli Zaretskii, 2018/08/16