Subject: bug#70036: 30.0.50; Move file-truename to the C level

From: Ihor Radchenko <[email-masked]>
Date: Thu, 28 Mar 2024 11:18:23 +0000

Theodor Thornhill <[email-masked]> writes:

> Not sure I understand what you mean. I tried it again, but this time the
> call is 100000 times and in an existing file on my system which is
> deeply nested. I run emacs with `emacs -Q` from a build on
> `30b1b0d7cd8e4d46a601e9737350cda970f6bab0`.
>
> the relevant part from the profile this time:
> ```
>        15478  72% - command-execute
>        15440  72%  - funcall-interactively
>        15439  72%   - eval-last-sexp
>        15439  72%    - #<compiled-function 0C4>
>        15439  72%     - elisp--eval-last-sexp
>        15436  71%      - eval
>        15436  71%       - benchmark-call
>        15434  71%        - #<lambda E8B>
>        15434  71%         - file-truename
>        13536  63%          - file-truename
>        12224  57%           - file-truename
> ...
> To me this looks like it spends a lot of time in recursive calls

No. It is just that your `file-truename' is native-compiled and the
profiler is unable to get the details from inside native subr code.

You can re-evaluate the defun to reveal the details in the profiler
output. Or use Emacs compiled without native-compilation support.

-- 
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>