From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Skipping unexec via a big .elc file Date: Sat, 08 Apr 2017 19:18:37 +0300 Message-ID: <83efx2na8y.fsf@gnu.org> References: <8A8DA980-13A7-4F8B-9D07-391728C673C9@raeburn.org> <831su4dmn4.fsf@gnu.org> <87h9300x5n.fsf@linux-m68k.org> <734D2132-71FD-414D-B091-629189742DB4@raeburn.org> <83a8889ede.fsf@gnu.org> <144D5F87-D876-485D-BAB3-2AA93627272A@raeburn.org> <83inmq53xk.fsf@gnu.org> <96D35768-314C-43F5-BD5E-B12187759DCA@raeburn.org> <123104DD-447F-4CDB-B3A0-CED80E3AC8C9@raeburn.org> <20170403165736.GA2851@acm> <2497A2D5-FDB1-47FF-AED3-FD4ABE2FE144@raeburn.org> <83lgrhpalq.fsf@gnu.org> <0D99B4FE-FEEF-4565-87D6-E230A05DEF3C@raeburn.org> <86lgrc4vob.fsf@molnjunk.nocrew.org> <834ly0oew1.fsf@gnu.org> <968E8F50-92F6-43C7-B7E4-EE8378943087@raeburn.org> <83wpawmj4d.fsf@gnu.org> <1e397033-8291-1625-8b78-a1e1c200aea5@gmail.com> Reply-To: Eli Zaretskii NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1491668365 31117 195.159.176.226 (8 Apr 2017 16:19:25 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sat, 8 Apr 2017 16:19:25 +0000 (UTC) Cc: cpitclaudel@gmail.com, emacs-devel@gnu.org To: Philipp Stephani Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Apr 08 18:19:16 2017 Return-path: Envelope-to: ged-emacs-devel@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 1cwt4v-0006P6-Bg for ged-emacs-devel@m.gmane.org; Sat, 08 Apr 2017 18:19:09 +0200 Original-Received: from localhost ([::1]:55811 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cwt50-0004ZN-OB for ged-emacs-devel@m.gmane.org; Sat, 08 Apr 2017 12:19:14 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41579) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cwt4J-0004Z3-HH for emacs-devel@gnu.org; Sat, 08 Apr 2017 12:18:32 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cwt4G-0000nK-AD for emacs-devel@gnu.org; Sat, 08 Apr 2017 12:18:31 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:43825) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cwt4G-0000nF-7I; Sat, 08 Apr 2017 12:18:28 -0400 Original-Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2591 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1cwt4F-0004n6-DR; Sat, 08 Apr 2017 12:18:27 -0400 In-reply-to: (message from Philipp Stephani on Sat, 08 Apr 2017 15:53:49 +0000) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:213814 Archived-At: > From: Philipp Stephani > Date: Sat, 08 Apr 2017 15:53:49 +0000 > > The question is whether there is actually a significant speed-up. > Autoloading is traditionally used for a small number of interactive commands that cause large optional libraries > to be loaded. In such cases I could imagine that the performance gain is still significant. However, you now > suggest that preloaded libraries get turned into autoloads. The structure of those libraries is typically quite > different: the consist to a large extent of individual helper functions that are independent of each other. My > guess is that this could make overall performance worse: it will cause loaddefs.el to contain all the signatures > and docstrings of these helper functions, and loaddefs.el is itself not byte-compiled. Therefore, you now need > to load the definitions effectively twice: once in loaddefs.el, once the functions are actually used. Therefore > such a change shouldn't be made without measuring its impact. This issue will not be resolved by guessing, but by measurements. So if you are interested and can produce a dumped.elc that only loads what's necessary in -batch session, and that dumped.elc does or doesn't load significantly faster than the full one, we will know who is right here. Thanks. > I'd actually prefer going into the other direction: preload much more than now, and remove lots of stuff from > autoloads. This will probably need a different strategy for preloading (Daniel's approach, or Rmacs, or an Elisp > LLVM compiler, ...). Given that load time is an issue, loading more stuff than strictly necessary seems to make very little sense to me.