From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.help Subject: Why is Elisp slow? (was: Re: Naming, and Gnus functions length [Was: Re: Knowing where a function has been used (bis) [Was: Re: Optimising Elisp code]]) Date: Mon, 08 Oct 2018 22:44:45 +0200 Organization: Aioe.org NNTP Server Message-ID: <86o9c4np6q.fsf_-_@zoho.com> 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> <86pnwkpltx.fsf@zoho.com> <8636tgphps.fsf@zoho.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1539031416 14046 195.159.176.226 (8 Oct 2018 20:43:36 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 8 Oct 2018 20:43:36 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Oct 08 22:43:32 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 1g9cNI-0003Yh-2s for geh-help-gnu-emacs@m.gmane.org; Mon, 08 Oct 2018 22:43:32 +0200 Original-Received: from localhost ([::1]:48255 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g9cPO-00046j-F6 for geh-help-gnu-emacs@m.gmane.org; Mon, 08 Oct 2018 16:45:42 -0400 Original-Path: usenet.stanford.edu!goblin3!goblin2!goblin.stu.neva.ru!aioe.org!.POSTED!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 48 Original-NNTP-Posting-Host: xQsFb8j6c/kdg9AvIrnVFA.user.gioia.aioe.org Original-X-Complaints-To: abuse@aioe.org X-Notice: Filtered by postfilter v. 0.8.3 Mail-Copies-To: never Cancel-Lock: sha1:n8Xd+LsFnxwvePTXKJabBhwHpPg= Original-Xref: usenet.stanford.edu gnu.emacs.help:224091 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:118217 Archived-At: Eli Zaretskii wrote: >> I once said to the Gnus developers, why >> don't you break down those age-long >> functions, to make it much easier to read >> and maintain the code? >> >> They said Gnus is slow, Elisp is slow, and >> breaking the defuns up into neat modules >> would make it even slower. > > They are right. Why is Elisp slow? Is it funcall overhead that is slow in particular or is Elisp slow in other aspects as well? Is Lisp slow in general? For example, compared to C? If so, what is the reason for this? How much faster does it (Elisp) get with the byte compiler? How much faster can one get it with inlining, assuming it is done by a skilled hand? Are there other speed-up methods other than inlining. (I mean specifically, not "write better code".) Is there like a list of things, functions perhaps, or data structures, that shouldn't be used unless necessary, because they are slow? Is there a tool that I can enable, then use Emacs a whole day (or night rather), and then the tool tells me "everything is OK, except for when you do this, that sticks out as something that drags down the tempo, so maybe you should have a look at it"? Facts for fans: This post contains 12 "?"s! -- underground experts united http://user.it.uu.se/~embe8573