GNU bug report logs - #23772
24.5; (format "%s" INTEGER) is slow

Previous Next

Package: emacs;

Reported by: ynyaaa <at> gmail.com

Date: Wed, 15 Jun 2016 11:41:02 UTC

Severity: wishlist

Tags: notabug, wontfix

Found in version 24.5

Done: npostavs <at> users.sourceforge.net

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 23772 in the body.
You can then email your comments to 23772 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#23772; Package emacs. (Wed, 15 Jun 2016 11:41:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to ynyaaa <at> gmail.com:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 15 Jun 2016 11:41:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: ynyaaa <at> gmail.com
To: bug-gnu-emacs <at> gnu.org
Subject: 24.5; (format "%s" INTEGER) is slow
Date: Wed, 15 Jun 2016 20:40:04 +0900
(format "%s" INTEGER) is slower than (format "%s" (format "%d" INTEGER)).

(benchmark-run-compiled 100000 (format "%s" 0))
=>(1.134 12 0.09000000000000119)
(benchmark-run-compiled 100000 (format "%d" 0))
=>(0.571 6 0.05500000000000016)
(benchmark-run-compiled 100000 (format "%s" (format "%d" 0)))
=>(0.652 13 0.12200000000000033)




In GNU Emacs 24.5.1 (i686-pc-mingw32)
 of 2015-04-11 on LEG570
Windowing system distributor `Microsoft Corp.', version 6.0.6002
Configured using:
 `configure --prefix=/c/usr --host=i686-pc-mingw32'

Important settings:
  value of $LANG: JPN
  locale-coding-system: cp932

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils advice help-at-pt misearch multi-isearch info
cus-start cus-load byte-opt bytecomp byte-compile cl-extra cl-loaddefs
cl-lib cconv benchmark help-mode easymenu help-fns time-date japan-util
tooltip electric uniquify ediff-hook vc-hooks lisp-float-type mwheel
dos-w32 ls-lisp w32-common-fns disp-table w32-win w32-vars tool-bar dnd
fontset image regexp-opt fringe tabulated-list newcomment lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
w32notify w32 multi-tty emacs)

Memory information:
((conses 8 100246 4506)
 (symbols 32 19808 0)
 (miscs 32 91 254)
 (strings 16 17110 3554)
 (string-bytes 1 453874)
 (vectors 8 12074)
 (vector-slots 4 483850 2486)
 (floats 8 64 468)
 (intervals 28 1181 16)
 (buffers 508 14))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#23772; Package emacs. (Wed, 15 Jun 2016 14:59:02 GMT) Full text and rfc822 format available.

Message #8 received at 23772 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: ynyaaa <at> gmail.com
Cc: 23772 <at> debbugs.gnu.org
Subject: Re: bug#23772: 24.5; (format "%s" INTEGER) is slow
Date: Wed, 15 Jun 2016 17:59:28 +0300
> From: ynyaaa <at> gmail.com
> Date: Wed, 15 Jun 2016 20:40:04 +0900
> 
> (benchmark-run-compiled 100000 (format "%s" 0))
> =>(1.134 12 0.09000000000000119)
> (benchmark-run-compiled 100000 (format "%d" 0))
> =>(0.571 6 0.05500000000000016)
> (benchmark-run-compiled 100000 (format "%s" (format "%d" 0)))
> =>(0.652 13 0.12200000000000033)

Why is that a problem?  %d is passed to sprintf, so it's very fast; %s
whose argument is a string or a symbol is also fast, because it just
copies characters.  But %s with an argument that is neither a string
nor a symbol is implemented via a call to prin1-to-string, which is
more expensive because it produces a string representation of an
arbitrary Lisp object.  This is consistent with your results.

IOW, if you know the argument is an integer, and you care about
performance, don't use %s.




Added tag(s) wontfix. Request was from Glenn Morris <rgm <at> gnu.org> to control <at> debbugs.gnu.org. (Thu, 16 Jun 2016 16:38:02 GMT) Full text and rfc822 format available.

Added tag(s) notabug. Request was from npostavs <at> users.sourceforge.net to control <at> debbugs.gnu.org. (Sat, 25 Feb 2017 19:35:02 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 23772 <at> debbugs.gnu.org and ynyaaa <at> gmail.com Request was from npostavs <at> users.sourceforge.net to control <at> debbugs.gnu.org. (Sat, 25 Feb 2017 19:35:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 26 Mar 2017 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 8 years and 146 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.