From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: cc-mode fontification feels random Date: Fri, 11 Jun 2021 22:23:16 +0300 Message-ID: <83bl8c9pej.fsf@gnu.org> References: <62e438b5-d27f-1d3c-69c6-11fe29a76d74@dancol.org> <83fsxsdxhu.fsf@gnu.org> <83pmwudgw3.fsf@gnu.org> <83k0n2cjg5.fsf@gnu.org> <83im2lbqmv.fsf@gnu.org> <179f6e4fa40.2816.cc5b3318d7e9908e2c46732289705cb0@dancol.org> <83fsxpbpn9.fsf@gnu.org> <83k0n09tkp.fsf@gnu.org> <83eed89s73.fsf@gnu.org> <9ac329c9-772e-1b3c-be7b-894ac1899d31@dancol.org> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="33888"; mail-complaints-to="usenet@ciao.gmane.io" Cc: acm@muc.de, emacs-devel@gnu.org, monnier@iro.umontreal.ca, rms@gnu.org, rudalics@gmx.at To: Daniel Colascione Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Jun 11 21:24:20 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lrmlQ-0008dF-TH for ged-emacs-devel@m.gmane-mx.org; Fri, 11 Jun 2021 21:24:20 +0200 Original-Received: from localhost ([::1]:51188 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lrmlP-0000MX-Sq for ged-emacs-devel@m.gmane-mx.org; Fri, 11 Jun 2021 15:24:19 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:57474) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lrmkh-00087K-0A for emacs-devel@gnu.org; Fri, 11 Jun 2021 15:23:35 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:38538) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lrmkf-0007l2-46; Fri, 11 Jun 2021 15:23:33 -0400 Original-Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:4976 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lrmkY-0007rw-Va; Fri, 11 Jun 2021 15:23:27 -0400 In-Reply-To: <9ac329c9-772e-1b3c-be7b-894ac1899d31@dancol.org> (message from Daniel Colascione on Fri, 11 Jun 2021 11:28:18 -0700) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:270719 Archived-At: > Cc: acm@muc.de, rudalics@gmx.at, monnier@iro.umontreal.ca, rms@gnu.org, > emacs-devel@gnu.org > From: Daniel Colascione > Date: Fri, 11 Jun 2021 11:28:18 -0700 > > > 0.015625 > > 0.03125 > > 0.015625 > > 0.046875 > > 0.09375 > > 0.0625 > > 0.015625 > > 0.03125 > > 0.015625 > > 0.03125 > > 0.015625 > > 0.03125 > > > > You consider this to be adequate performance for a single > > window-scroll? (I don't have an optimized build of Emacs 28, but > > there's no reason to believe it is faster; quite the opposite.) > > native-comp? No (it's Emacs 27). But Alan already timed the native and non-native versions in Emacs 28, and didn't find any tangible difference. In fact, the byte-compiled code was slightly faster. > > - font-lock-fontify-region 157 65% > > - c-font-lock-fontify-region 157 65% > > - font-lock-default-fontify-region 146 60% > > - font-lock-fontify-keywords-region 143 59% > > - c-font-lock-declarations 97 40% > > - c-find-decl-spots 97 40% > > - # 73 30% > > - c-forward-decl-or-cast-1 38 15% > > - c-forward-type 22 9% > > - c-check-qualified-type 7 2% > > > > We can stick our heads in the sand as much as we want, but facts are > > stubborn things. > > Hrm. That doesn't seem consistent with Alan's report that we spend a ton > of time doing work like deciding whether a brace occurs at top-level. Maybe we should produce profiles on different systems and compare them, so that we are sure the data is solid and repeatable? Or maybe Alan was talking about Emacs 28, where something has changed considerably? > My question stands: what core facilities can we add to accelerate > cc-mode's parsing here? There's got to be some efficiency we can > gain here. I don't think we have an answer to that. Alan, do you have some suggestions? If we don't have anything we already figured out, I guess the answer should be found by studying the code of the hot spots and looking for optimization opportunities or algorithmic changes.