From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Barry Margolin Newsgroups: gmane.emacs.help Subject: Re: Knowing where a function has been used (bis) [Was: Re: Optimising Elisp code] Date: Thu, 11 Oct 2018 15:29:03 -0400 Organization: A noiseless patient Spider Message-ID: References: <638fb7dc-6fc5-4645-8793-97a00038a3a8@googlegroups.com> <8hxojvzzzzzz.m4h.xxuns.g6.gal@portable.galex-713.eu> <20181006192457.GB7368@tuxteam.de> <86lg79yl54.fsf@zoho.com> <86d0slrb4h.fsf@zoho.com> <86d0sknoud.fsf@zoho.com> <86tvlvmxtz.fsf@zoho.com> <86woqprcdb.fsf@zoho.com> NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1539286268 14167 195.159.176.226 (11 Oct 2018 19:31:08 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 11 Oct 2018 19:31:08 +0000 (UTC) User-Agent: MT-NewsWatcher/3.5.3b3 (Intel Mac OS X) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Thu Oct 11 21:31:04 2018 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gAgfk-0003VL-AQ for geh-help-gnu-emacs@m.gmane.org; Thu, 11 Oct 2018 21:31:00 +0200 Original-Received: from localhost ([::1]:36379 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAghq-0001Sp-Ce for geh-help-gnu-emacs@m.gmane.org; Thu, 11 Oct 2018 15:33:10 -0400 Original-Path: usenet.stanford.edu!goblin1!goblin.stu.neva.ru!eternal-september.org!feeder.eternal-september.org!reader02.eternal-september.org!barmar.motzarella.org!.POSTED!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 47 Original-Injection-Info: barmar.motzarella.org; posting-host="96b399c39ceb3c7999d0e8c0ca776263"; logging-data="22332"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/hgapUjYG1mcKS+ONInV+5" Cancel-Lock: sha1:l2GgZXKOvACjw4/B66E0UxWvP7s= Original-Xref: usenet.stanford.edu gnu.emacs.help:224127 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:118253 Archived-At: In article <86woqprcdb.fsf@zoho.com>, Emanuel Berg wrote: > Barry Margolin wrote: > > >> If we are talking the insanely long > >> functions of Gnus, if the funcall overhead > >> is the reason for that, I don't see why > >> modularization plus inlining couldn't be one > >> puzzle piece of the remedy. > > > > If a function is "insanely long" then > > inlining will have negligible effect. > > Funcall overhead is only relevant if the > > function is really short, so it spends nearly > > as much time calling the function as doing > > the actual work of the function, AND you call > > the function frequently enough that this > > overhead adds up to something significant. > > The insanely long functions would be shorter if > they, instead of doing one million things, > called other functions to help them with that. > This isn't done because it isn't fast enough. > But if inline works as you describe it, some of > that code could in fact be moved out of the > insanely long function, while still not slowing > it down with funcall overhead. Long functions are often long because of complex logic, which can be hard to extract into separate functions. Also, we tend to extract code into separate functions only when there's some logic to it -- it has to have a meaningful identity outside the function where it exists. If a function can only be used in one place, and refers to lots of the variables in that caller, then it's often hard to justify splitting it out -- it actually makes things more confusing because the modularity doesn't make sense. I doubt that anyone makes decision about whether to split large functions into separate functions based on the overhead of function calling. -- Barry Margolin, barmar@alum.mit.edu Arlington, MA *** PLEASE post questions in newsgroups, not directly to me ***