unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: "Björn Lindqvist" <bjourne@gmail.com>
Cc: emacs-devel@gnu.org
Subject: Re: Bloat in the Emacs Windows package
Date: Wed, 17 Apr 2019 19:32:07 +0300	[thread overview]
Message-ID: <83a7gofv94.fsf@gnu.org> (raw)
In-Reply-To: <CALG+76dRyKdfph-M4oRVwJQh2RzvzkjqMdaO4LB-4poyP5tjCA@mail.gmail.com> (message from Björn Lindqvist on Wed, 17 Apr 2019 17:07:23 +0200)

> From: Björn Lindqvist <bjourne@gmail.com>
> Date: Wed, 17 Apr 2019 17:07:23 +0200
> Cc: emacs-devel@gnu.org
> 
> > Some people want the binary zip to include all the optional features
> > that Emacs on Windows can support.
> 
> Fair enough. But what optional features are missing from the
> -no-deps.zip file?

All of them.  Image support beyond XPM, SSL/TLS connections, HTML and
XML parsing, built-in decompression, built-in JSON support.

> Maybe the name of the
> emacs-26.1-x86_64.zip file could be changed to indicate that it is an
> "all inclusive" package? Most users are probably fine with downloading
> the smaller emacs-26.1-x86_64-no-deps.zip instead.

AFAIR, we've changed the names in the opposite direction because most
people wanted the full version.

> > Stripping emacs.exe produces a 29MB file for Emacs 26.2.
> 
> But why is it four times bigger than in 24.5?

Because the disk image includes a large array which is used only in
its small part.  We need this to be able to strip emacs.exe, something
that in previous versions required building a special binary.  The
actual footprint in memory is much smaller, between 12MB and 18MB
depending on the configuration.

You really shouldn't worry that much about disk space, the memory
footprint of a running process is a much more relevant measure of
bloat.

> Has so much new C code been added to Emacs?

See above: most of it is data, not code.  And it isn't loaded into the
running process.

> > It is a great help to have debug info when problems are reported that
> > cause crashes and cannot be easily reproduced.
> 
> I don't think I've ever had Emacs on Windows crash on me. But if it did,
> how would I get hold of the stack trace? Executables on Windows are
> mostly run by clicking on their icons and that hides the standard input
> and output.

Emacs writes the stack trace to a file, and the user manual explains
how to convert that into human-readable addresses.

> > But if Phillip can afford prodicing separate debug info file for
> > Emacs, we could have the cake and eat it, too.
> 
> Do you mean afford as in time or as in the Windows build is run on a
> rented server?

I have no idea what would that mean for Phillip, that's something he
will have to answer.  If needed, I can help by showing the commands
required to move the debug info into a separate file.

> You are right. I stripped the emacs.exe and the startup slowdown
> remains. But it could still be related to the debugging symbols if emacs
> is compiled with -Og which is customary for debug builds.

AFAIK, it was compiled with "-O2 -g3", not -Og.

> Because if you
> compile it with more optimizations (-O2 or -O3), the debugging
> symbols becomes less useful as stack frames disappear and
> -fomit-frame-pointer makes it harder for gdb to inspect the stack.

Having symbols even in an optimized build is better than not having
them.  And I don't think Phillip uses -fomit-frame-pointer, because
it's a net loss.

> Well, yes, but how many Windows users complained about the lack of
> debugging symbols in Emacs 24?

Without symbols some problems that are reported cannot be investigated
and fixed.

> I must admit I have a hard time formulating why I think avoiding
> bloat is important, it just seem self-evident.

Not disk space.  Bloat of memory footprint, yes.

> For example, Visual Studio 2017 is over 2GB and that irritates me
> because why does it need so much space for just an IDE and a
> C/C++-compiler?!

Well, shall we postpone the argument until Emacs gets anywhere near
2GB?

> Emacs is also supposed to be usable on old operating systems and old
> hardware

Which old systems are those?



  reply	other threads:[~2019-04-17 16:32 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-17  5:01 Bloat in the Emacs Windows package Björn Lindqvist
2019-04-17  7:31 ` Eli Zaretskii
2019-04-17 11:15   ` Van L
2019-04-17 11:26     ` Eli Zaretskii
2019-04-17 12:39   ` Stefan Monnier
2019-04-17 14:49     ` Eli Zaretskii
2019-04-17 16:17       ` Eli Zaretskii
2019-04-18 22:02         ` Björn Lindqvist
2019-04-19  7:00           ` Eli Zaretskii
2019-04-17 17:26     ` Phillip Lord
2019-04-17 17:55       ` Stefan Monnier
2019-04-19  0:02       ` Björn Lindqvist
2019-04-19  7:33         ` Eli Zaretskii
2019-04-19 13:23           ` Óscar Fuentes
2019-04-22 21:04             ` Phillip Lord
2019-04-22 21:41               ` Óscar Fuentes
2019-04-17 13:42   ` Stefan Monnier
2019-04-17 16:19     ` Óscar Fuentes
2019-04-17 17:28     ` Phillip Lord
2019-04-17 15:07   ` Björn Lindqvist
2019-04-17 16:32     ` Eli Zaretskii [this message]
2019-04-18 23:44       ` Björn Lindqvist
2019-04-19  7:27         ` Eli Zaretskii
2019-04-19 14:17           ` Óscar Fuentes
2019-04-19 15:05             ` Eli Zaretskii
2019-04-22 20:55             ` Phillip Lord
2019-04-17 17:39     ` Phillip Lord
2019-04-17 18:06       ` Stefan Monnier
2019-04-17 18:32       ` Eli Zaretskii
2019-04-18 16:05         ` Phillip Lord
2019-04-18 19:08           ` Eli Zaretskii
2019-04-18 21:19             ` Phillip Lord
2019-04-18 23:12               ` Óscar Fuentes
2019-04-19  6:29               ` Eli Zaretskii
2019-04-22 20:40                 ` Phillip Lord
2019-04-23  2:25                   ` Stefan Monnier
2019-04-23 10:01                     ` Phillip Lord
2019-04-23 11:28                       ` Robert Pluim
2019-04-23 21:49                         ` Phillip Lord
2019-04-26 16:30                       ` Phillip Lord
2019-04-26 17:04                         ` Óscar Fuentes
2019-04-26 21:41                           ` Phillip Lord
2019-04-27 18:12                         ` Björn Lindqvist
2019-04-27 18:17                           ` Phillip Lord
2019-05-03  1:06                             ` Björn Lindqvist
2019-05-03  6:49                               ` Eli Zaretskii
2019-05-03 18:38                                 ` Björn Lindqvist
2019-05-03 18:42                                   ` Eli Zaretskii
2019-05-03 20:20                                     ` Stefan Monnier
2019-04-23  5:37                   ` Eli Zaretskii
2019-04-17 15:44 ` Phillip Lord
2019-04-17 16:25   ` Óscar Fuentes
2019-04-17 16:46     ` Eli Zaretskii
2019-04-18 16:00       ` Phillip Lord
2019-04-18 15:56     ` Phillip Lord
2019-04-18 16:39       ` Óscar Fuentes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83a7gofv94.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=bjourne@gmail.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).