From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#23223: 25.0.92; Can xref-find-references be sped up? Date: Tue, 05 Apr 2016 18:16:04 +0300 Message-ID: <83pou4m6h7.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1459869493 29340 80.91.229.3 (5 Apr 2016 15:18:13 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 5 Apr 2016 15:18:13 +0000 (UTC) To: 23223@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Apr 05 17:17:59 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1anSju-0000XH-DQ for geb-bug-gnu-emacs@m.gmane.org; Tue, 05 Apr 2016 17:17:58 +0200 Original-Received: from localhost ([::1]:37663 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1anSjt-0000Ci-RF for geb-bug-gnu-emacs@m.gmane.org; Tue, 05 Apr 2016 11:17:57 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:49800) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1anSj4-0007is-PX for bug-gnu-emacs@gnu.org; Tue, 05 Apr 2016 11:17:11 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1anSj0-0002f8-Jp for bug-gnu-emacs@gnu.org; Tue, 05 Apr 2016 11:17:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:38158) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1anSj0-0002es-G3 for bug-gnu-emacs@gnu.org; Tue, 05 Apr 2016 11:17:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1anSj0-0000Dm-CU for bug-gnu-emacs@gnu.org; Tue, 05 Apr 2016 11:17:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 05 Apr 2016 15:17:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 23223 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.1459869406820 (code B ref -1); Tue, 05 Apr 2016 15:17:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 5 Apr 2016 15:16:46 +0000 Original-Received: from localhost ([127.0.0.1]:50495 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1anSij-0000DA-TC for submit@debbugs.gnu.org; Tue, 05 Apr 2016 11:16:46 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:58700) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1anSih-0000Cw-Hy for submit@debbugs.gnu.org; Tue, 05 Apr 2016 11:16:43 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1anSib-0002Va-9K for submit@debbugs.gnu.org; Tue, 05 Apr 2016 11:16:38 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:53135) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1anSib-0002VW-6C for submit@debbugs.gnu.org; Tue, 05 Apr 2016 11:16:37 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:49668) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1anSiZ-0007es-TY for bug-gnu-emacs@gnu.org; Tue, 05 Apr 2016 11:16:37 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1anSiV-0002Rt-PX for bug-gnu-emacs@gnu.org; Tue, 05 Apr 2016 11:16:35 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:50474) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1anSiV-0002Rm-LJ for bug-gnu-emacs@gnu.org; Tue, 05 Apr 2016 11:16:31 -0400 Original-Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4281 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1anSiU-0004Zg-KU for bug-gnu-emacs@gnu.org; Tue, 05 Apr 2016 11:16:31 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:116063 Archived-At: With an ID database present in the Emacs top-level directory, do this: emacs -Q C-x C-f src/buffer.c RET C-u 1316 M-x goto-char RET You should now see point on "current_buffer". Now: M-x xref-find-references RET RET When prompted for the project directory, remove the "src/" part, to specify the root of the Emacs tree, and type RET. This takes around 13 sec here, although the corresponding 'lid' command: lid --result=grep -l -w current_buffer takes only 0.07 sec. The important part of the Lisp-level profile appears below. It looks like we are visiting each match of each file in the list of matches, and that takes most of the time. Can this be avoided somehow? The 'lid' command already includes all the matches in Grep format, so why are we visiting each match, when the information should be already available? - command-execute 833 92% - call-interactively 833 92% - funcall-interactively 830 92% - execute-extended-command 830 92% - command-execute 826 91% - call-interactively 815 90% - funcall-interactively 813 90% - xref-find-references 813 90% - xref--find-xrefs 813 90% - xref-backend-references 800 88% - cl-mapcan 788 87% - apply 788 87% - cl-mapcar 788 87% - mapcar 788 87% - # 788 87% - xref-collect-references 788 87% - cl-mapcan 770 85% - apply 770 85% - cl-mapcar 770 85% - mapcar 770 85% - # 770 85% - xref--collect-matches 728 80% - semantic-find-file-noselect 556 61% - find-file-noselect 556 61% - find-file-noselect-1 519 57% - after-find-file 503 55% - normal-mode 499 55% - set-auto-mode 493 54% - set-auto-mode-0 488 54% - c-mode 488 54% - c-common-init 480 53% - mapc 473 52% - # 472 52% - c-neutralize-syntax-in-and-mark-CPP 466 51% - c-extend-font-lock-region-for-macros 205 22% - c-state-literal-at 205 22% - c-state-safe-place 199 22% - c-beginning-of-macro 3 0% back-to-indentation 3 0% c-syntactic-end-of-macro 1 0% c-syntactic-end-of-macro 9 1% c-neutralize-CPP-line 7 0% - c-beginning-of-macro 4 0% back-to-indentation 2 0% # 1 0% - c-basic-common-init 7 0% - c-set-style 4 0% - mapc 4 0% - # 4 0% - c-set-style-1 2 0% - mapcar 2 0% # 1 0% - run-mode-hooks 3 0% In GNU Emacs 25.0.92.75 (i686-pc-mingw32) of 2016-04-04 built on HOME-C4E4A596F7 Repository revision: f501116ea896b20f195f5c841e8770d7fe0418b9 Windowing system distributor 'Microsoft Corp.', version 5.1.2600 Configured using: 'configure --prefix=/d/usr --enable-checking=yes,glyphs --with-wide-int --with-modules 'CFLAGS=-O0 -gdwarf-4 -g3'' Configured features: XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS MODULES Important settings: value of $LANG: ENU locale-coding-system: cp1255 Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message dired format-spec rfc822 mml mml-sec password-cache epg epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util help-fns help-mode easymenu cl-loaddefs pcase cl-lib mail-prsvr mail-utils time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp disp-table w32-win w32-vars term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote w32notify w32 multi-tty make-network-process emacs) Memory information: ((conses 16 93253 6020) (symbols 56 20721 0) (miscs 48 36 107) (strings 16 17749 6443) (string-bytes 1 439871) (vectors 16 12404) (vector-slots 8 429720 3894) (floats 8 162 70) (intervals 40 261 118) (buffers 856 11))