1. emacs -q 2. Load a elpa package, symbol-overlay, which has symbol-overlay-post-command in post-command-hook 3. Open a file buffer, enable symbol-overlay-mode 4. Hold C-n, symbol-overlay-post-command will call thing-at-point frequently and the cpu profiler-report is as follows Samples % Function 29500 93% - symbol-overlay-post-command 29497 93% - if 29480 93% - string= 29474 93% - symbol-overlay-get-symbol 29471 93% - or 29466 93% - thing-at-point 29447 93% - save-restriction 29129 92% narrow-to-region 309 0% + let 13 0% + symbol-overlay-remove-temp 1388 4% + command-execute 269 0% + redisplay_internal (C function) 216 0% + ... 191 0% + timer-event-handler 20 0% + internal-timer-start-idle 15 0% jit-lock--antiblink-post-command 11 0% + undo-auto--add-boundary 4 0% + clear-minibuffer-message The cpu profiler-report of the same process with thingatpt.el before commit 7db376e560448e61485ba054def8c82b21f33d6a is as follows: Samples % Function 3859 42% + redisplay_internal (C function) 2895 31% + command-execute 892 9% + ... 689 7% + timer-event-handler 618 6% - symbol-overlay-post-command 611 6% - if 576 6% - string= 563 6% - symbol-overlay-get-symbol 563 6% - or 557 6% - thing-at-point 557 6% - let 545 5% - cond 510 5% - let 493 5% - bounds-of-thing-at-point 493 5% - if 478 5% - let 471 5% - condition-case 471 5% - progn 451 4% - save-excursion 261 2% + funcall 182 2% + let 4 0% get