all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#64847: Emacs 29 RC1 takes around 25ms longer to start without config and about 25ms with config
@ 2023-07-25  9:06 Yanchi Tóth
  2023-07-25 12:49 ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: Yanchi Tóth @ 2023-07-25  9:06 UTC (permalink / raw)
  To: 64847

[-- Attachment #1: Type: text/plain, Size: 6111 bytes --]

Hello :)

Emacs 29 RC1 takes around 25ms longer to start without config and about
25ms with config. These timings are the best of 5 runs of emacs-init-time
on 29 RC1 and 28.2.

0.595389 seconds (29 RC1 w/ config)
0.222545 seconds (29 RC1 w/o config)

0.556751 seconds (28.2 w/ config)
0.197640 seconds (28.2 w/o config)

Output of report-emacs-bug ran in 29 (w/ config) below:

In GNU Emacs 29.1 (build 2, x86_64-w64-mingw32) of 2023-07-23 built on
 AVALON
Windowing system distributor 'Microsoft Corp.', version 10.0.19045
System Description: Microsoft Windows 10 Pro (v10.0.2009.19045.3208)

Configured using:
 'configure --with-modules --without-dbus --with-native-compilation=aot
 --without-compress-install --with-tree-sitter CFLAGS=-O2'

Configured features:
ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XPM ZLIB

Important settings:
  value of $LANG: ENU
  locale-coding-system: cp1252

Major mode: Fundamental

Minor modes in effect:
  ivy-mode: t
  override-global-mode: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  straight-symlink-emulation-mode: t
  straight-live-modifications-mode: t
  global-subword-mode: t
  subword-mode: t
  global-auto-revert-mode: t
  delete-selection-mode: t
  electric-pair-mode: t
  global-so-long-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
c:/Users/yanchith/.emacs.d/straight/build/transient/transient hides
c:/Users/yanchith/emacs-29.1-rc1/share/emacs/29.1/lisp/transient
c:/Users/yanchith/.emacs.d/straight/build/use-package/use-package hides
c:/Users/yanchith/emacs-29.1-rc1/share/emacs/29.1/lisp/use-package/use-package
c:/Users/yanchith/.emacs.d/straight/build/use-package/use-package-lint
hides
c:/Users/yanchith/emacs-29.1-rc1/share/emacs/29.1/lisp/use-package/use-package-lint
c:/Users/yanchith/.emacs.d/straight/build/use-package/use-package-jump
hides
c:/Users/yanchith/emacs-29.1-rc1/share/emacs/29.1/lisp/use-package/use-package-jump
c:/Users/yanchith/.emacs.d/straight/build/use-package/use-package-ensure
hides
c:/Users/yanchith/emacs-29.1-rc1/share/emacs/29.1/lisp/use-package/use-package-ensure
c:/Users/yanchith/.emacs.d/straight/build/use-package/use-package-diminish
hides
c:/Users/yanchith/emacs-29.1-rc1/share/emacs/29.1/lisp/use-package/use-package-diminish
c:/Users/yanchith/.emacs.d/straight/build/use-package/use-package-delight
hides
c:/Users/yanchith/emacs-29.1-rc1/share/emacs/29.1/lisp/use-package/use-package-delight
c:/Users/yanchith/.emacs.d/straight/build/use-package/use-package-core
hides
c:/Users/yanchith/emacs-29.1-rc1/share/emacs/29.1/lisp/use-package/use-package-core
c:/Users/yanchith/.emacs.d/straight/build/use-package/use-package-bind-key
hides
c:/Users/yanchith/emacs-29.1-rc1/share/emacs/29.1/lisp/use-package/use-package-bind-key
c:/Users/yanchith/.emacs.d/straight/build/bind-key/bind-key hides
c:/Users/yanchith/emacs-29.1-rc1/share/emacs/29.1/lisp/use-package/bind-key
c:/Users/yanchith/.emacs.d/straight/build/csharp-mode/csharp-mode hides
c:/Users/yanchith/emacs-29.1-rc1/share/emacs/29.1/lisp/progmodes/csharp-mode

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny rfc822
mml mml-sec password-cache epa derived epg rfc6068 epg-config gnus-util
time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils thingatpt counsel xdg xref project byte-opt dired
dired-loaddefs compile text-property-search comint ansi-osc ansi-color
swiper pcase abu-theme wgsl-mode-autoloads glsl-mode-autoloads
csharp-mode-autoloads typescript-mode-autoloads rust-mode-autoloads
counsel-autoloads swiper-autoloads ivy ring ivy-faces ivy-overlay colir
color ivy-autoloads magit-autoloads magit-section-autoloads
git-commit-autoloads with-editor-autoloads transient-autoloads
compat-autoloads expand-region-autoloads multiple-cursors-autoloads
finder-inf edmacro kmacro move-text-autoloads whitespace f-autoloads
dash-autoloads s-autoloads use-package use-package-ensure
use-package-delight use-package-diminish use-package-bind-key bind-key
use-package-core use-package-autoloads bind-key-autoloads
straight-autoloads straight cap-words superword subword autorevert
filenotify easy-mmode delsel comp comp-cstr warnings icons subr-x rx
cl-seq cl-macs gv cl-extra help-mode bytecomp byte-compile elec-pair
hl-line so-long cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc
paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode
mwheel dos-w32 ls-lisp disp-table term/w32-win w32-win w32-vars
term/common-win tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads w32notify w32 lcms2 multi-tty make-network-process
native-compile emacs)

Memory information:
((conses 16 149365 11248)
 (symbols 48 12552 0)
 (strings 32 39098 2504)
 (string-bytes 1 1467890)
 (vectors 16 25019)
 (vector-slots 8 482359 16812)
 (floats 8 124 237)
 (intervals 56 263 0)
 (buffers 984 11))

[-- Attachment #2: Type: text/html, Size: 6605 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#64847: Emacs 29 RC1 takes around 25ms longer to start without config and about 25ms with config
  2023-07-25  9:06 bug#64847: Emacs 29 RC1 takes around 25ms longer to start without config and about 25ms with config Yanchi Tóth
@ 2023-07-25 12:49 ` Eli Zaretskii
  2023-07-25 13:23   ` Yanchi Tóth
  0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2023-07-25 12:49 UTC (permalink / raw)
  To: Yanchi Tóth; +Cc: 64847

> From: Yanchi Tóth <yanchi.toth@gmail.com>
> Date: Tue, 25 Jul 2023 11:06:53 +0200
> 
> Emacs 29 RC1 takes around 25ms longer to start without config and about 25ms with config. These
> timings are the best of 5 runs of emacs-init-time on 29 RC1 and 28.2.

Was your Emacs 28 also built with --with-native-compilation=aot?  Was
it built with native-compilation enabled at all?  (You show the
configuration data from the v29.1 build, but not from the 28.2 build,
so I couldn't deduce the answers to those questions myself.)

In any case, 25 msec is a very small difference.

Thanks.





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#64847: Emacs 29 RC1 takes around 25ms longer to start without config and about 25ms with config
  2023-07-25 12:49 ` Eli Zaretskii
@ 2023-07-25 13:23   ` Yanchi Tóth
  2023-07-25 14:01     ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: Yanchi Tóth @ 2023-07-25 13:23 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 64847

[-- Attachment #1: Type: text/plain, Size: 5155 bytes --]

Hi :)

Here's the configuration data for 28.2. I believe it says it was built with
--with-native-compilation, but not AOT. Is that where you expect the time
difference to come from?

In GNU Emacs 28.2 (build 2, x86_64-w64-mingw32)
 of 2022-09-13 built on AVALON
Windowing system distributor 'Microsoft Corp.', version 10.0.19045
System Description: Microsoft Windows 10 Pro (v10.0.2009.19045.3208)

Configured using:
 'configure --with-modules --without-dbus --with-native-compilation
 --without-compress-install CFLAGS=-O2'

Configured features:
ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND THREADS TIFF TOOLKIT_SCROLL_BARS
XPM ZLIB

Important settings:
  value of $LANG: ENU
  locale-coding-system: cp1252

Major mode: Fundamental

Minor modes in effect:
  ivy-mode: t
  override-global-mode: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  straight-symlink-emulation-mode: t
  straight-live-modifications-mode: t
  global-subword-mode: t
  subword-mode: t
  global-auto-revert-mode: t
  delete-selection-mode: t
  electric-pair-mode: t
  global-so-long-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
c:/Users/yanchith/.emacs.d/straight/build/transient/transient hides
c:/Users/yanchith/emacs-28.2/share/emacs/28.2/lisp/transient

Features:
(shadow sort mail-extr emacsbug message rmc puny rfc822 mml mml-sec epa
derived epg rfc6068 epg-config gnus-util rmail rmail-loaddefs
auth-source eieio eieio-core eieio-loaddefs password-cache json map
time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils counsel xdg xref dired dired-loaddefs compile
text-property-search comint ansi-color swiper thingatpt vc-mtn vc-hg
vc-git diff-mode vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc
vc-dispatcher project pcase abu-theme wgsl-mode-autoloads
glsl-mode-autoloads csharp-mode-autoloads typescript-mode-autoloads
rust-mode-autoloads counsel-autoloads swiper-autoloads ivy ring
ivy-faces ivy-overlay colir color ivy-autoloads magit-autoloads
magit-section-autoloads git-commit-autoloads with-editor-autoloads
transient-autoloads compat-autoloads expand-region-autoloads
multiple-cursors-autoloads finder-inf move-text-autoloads whitespace
f-autoloads dash-autoloads s-autoloads use-package use-package-ensure
use-package-delight use-package-diminish use-package-bind-key bind-key
use-package-core use-package-autoloads bind-key-autoloads
straight-autoloads straight cap-words superword subword autorevert
filenotify easy-mmode edmacro kmacro delsel comp comp-cstr warnings
subr-x rx cl-seq cl-macs cl-extra help-mode seq byte-opt gv bytecomp
byte-compile cconv elec-pair hl-line so-long cl-loaddefs cl-lib
iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel dos-w32 ls-lisp disp-table
term/w32-win w32-win w32-vars term/common-win tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice
button loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads w32notify w32 lcms2 multi-tty
make-network-process native-compile emacs)

Memory information:
((conses 16 163843 10834)
 (symbols 48 14325 0)
 (strings 32 43134 3211)
 (string-bytes 1 1653802)
 (vectors 16 26190)
 (vector-slots 8 480548 10492)
 (floats 8 124 354)
 (intervals 56 242 0)
 (buffers 992 10))

On Tue, Jul 25, 2023 at 2:49 PM Eli Zaretskii <eliz@gnu.org> wrote:

> > From: Yanchi Tóth <yanchi.toth@gmail.com>
> > Date: Tue, 25 Jul 2023 11:06:53 +0200
> >
> > Emacs 29 RC1 takes around 25ms longer to start without config and about
> 25ms with config. These
> > timings are the best of 5 runs of emacs-init-time on 29 RC1 and 28.2.
>
> Was your Emacs 28 also built with --with-native-compilation=aot?  Was
> it built with native-compilation enabled at all?  (You show the
> configuration data from the v29.1 build, but not from the 28.2 build,
> so I couldn't deduce the answers to those questions myself.)
>
> In any case, 25 msec is a very small difference.
>
> Thanks.
>

[-- Attachment #2: Type: text/html, Size: 5828 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#64847: Emacs 29 RC1 takes around 25ms longer to start without config and about 25ms with config
  2023-07-25 13:23   ` Yanchi Tóth
@ 2023-07-25 14:01     ` Eli Zaretskii
  2023-07-26  8:35       ` Yanchi Tóth
  0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2023-07-25 14:01 UTC (permalink / raw)
  To: Yanchi Tóth; +Cc: 64847

> From: Yanchi Tóth <yanchi.toth@gmail.com>
> Date: Tue, 25 Jul 2023 15:23:37 +0200
> Cc: 64847@debbugs.gnu.org
> 
> Here's the configuration data for 28.2. I believe it says it was built with --with-native-compilation, but
> not AOT. Is that where you expect the time difference to come from?

Could be, mainly in the "w/ config" case, where presumably Emacs loads
packages that are not preloaded.

In addition, Emacs 29.1 loads 8 more preloaded packages than Emacs
28.2 does, even without config, and those 8 additional *.eln files
need to be loaded at startup (they are DLLs in disguise), which takes
time, especially if your system has some antivirus software active
which checks every DLL loaded by a program.

So I don't think 25 msec of additional startup time sounds outlandish
to me.





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#64847: Emacs 29 RC1 takes around 25ms longer to start without config and about 25ms with config
  2023-07-25 14:01     ` Eli Zaretskii
@ 2023-07-26  8:35       ` Yanchi Tóth
  2023-07-26 11:23         ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: Yanchi Tóth @ 2023-07-26  8:35 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 64847

[-- Attachment #1: Type: text/plain, Size: 1101 bytes --]

I am used about thinking about submillisecond times, so I definitely
noticed, but on the other hand, the libraries bring value. I think the
final decision rests with you :)

On Tue, Jul 25, 2023 at 4:01 PM Eli Zaretskii <eliz@gnu.org> wrote:

> > From: Yanchi Tóth <yanchi.toth@gmail.com>
> > Date: Tue, 25 Jul 2023 15:23:37 +0200
> > Cc: 64847@debbugs.gnu.org
> >
> > Here's the configuration data for 28.2. I believe it says it was built
> with --with-native-compilation, but
> > not AOT. Is that where you expect the time difference to come from?
>
> Could be, mainly in the "w/ config" case, where presumably Emacs loads
> packages that are not preloaded.
>
> In addition, Emacs 29.1 loads 8 more preloaded packages than Emacs
> 28.2 does, even without config, and those 8 additional *.eln files
> need to be loaded at startup (they are DLLs in disguise), which takes
> time, especially if your system has some antivirus software active
> which checks every DLL loaded by a program.
>
> So I don't think 25 msec of additional startup time sounds outlandish
> to me.
>

[-- Attachment #2: Type: text/html, Size: 1565 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#64847: Emacs 29 RC1 takes around 25ms longer to start without config and about 25ms with config
  2023-07-26  8:35       ` Yanchi Tóth
@ 2023-07-26 11:23         ` Eli Zaretskii
  0 siblings, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2023-07-26 11:23 UTC (permalink / raw)
  To: Yanchi Tóth; +Cc: 64847-done

> From: Yanchi Tóth <yanchi.toth@gmail.com>
> Date: Wed, 26 Jul 2023 10:35:02 +0200
> Cc: 64847@debbugs.gnu.org
> 
> I am used about thinking about submillisecond times, so I definitely noticed, but on the other hand, the
> libraries bring value. I think the final decision rests with you :)

I don't see how such small slowdowns could be serious enough for us to
bother.  We are not even sure the two binaries were built by the same
version of GCC, are we?

So I'm closing this bug; if someone wants to investigate the sources
of this slowdown, or finds a case where the difference is much larger,
we can always reopen.





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-07-26 11:23 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-25  9:06 bug#64847: Emacs 29 RC1 takes around 25ms longer to start without config and about 25ms with config Yanchi Tóth
2023-07-25 12:49 ` Eli Zaretskii
2023-07-25 13:23   ` Yanchi Tóth
2023-07-25 14:01     ` Eli Zaretskii
2023-07-26  8:35       ` Yanchi Tóth
2023-07-26 11:23         ` Eli Zaretskii

Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.