From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Defcustoms, how do users find them? Date: Thu, 26 Nov 2009 12:30:59 -0500 Message-ID: References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1259259007 5754 80.91.229.12 (26 Nov 2009 18:10:07 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 26 Nov 2009 18:10:07 +0000 (UTC) Cc: Emacs-Devel devel To: Lennart Borgman Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Nov 26 19:10:00 2009 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1NDimv-0006pZ-3n for ged-emacs-devel@m.gmane.org; Thu, 26 Nov 2009 19:09:53 +0100 Original-Received: from localhost ([127.0.0.1]:46136 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NDimu-000191-MU for ged-emacs-devel@m.gmane.org; Thu, 26 Nov 2009 13:09:52 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NDiBc-0004bP-EM for emacs-devel@gnu.org; Thu, 26 Nov 2009 12:31:20 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NDiBX-0004Sc-Kr for emacs-devel@gnu.org; Thu, 26 Nov 2009 12:31:19 -0500 Original-Received: from [199.232.76.173] (port=49316 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NDiBW-0004SN-Tm for emacs-devel@gnu.org; Thu, 26 Nov 2009 12:31:14 -0500 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.181]:45401 helo=ironport2-out.pppoe.ca) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NDiBW-0005ug-Lf for emacs-devel@gnu.org; Thu, 26 Nov 2009 12:31:14 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: At8EAK5KDktFpYc//2dsb2JhbACBTdQBhDEEihk X-IronPort-AV: E=Sophos;i="4.47,295,1257138000"; d="scan'208";a="50090670" Original-Received: from 69-165-135-63.dsl.teksavvy.com (HELO ceviche.home) ([69.165.135.63]) by ironport2-out.pppoe.ca with ESMTP; 26 Nov 2009 12:30:59 -0500 Original-Received: by ceviche.home (Postfix, from userid 20848) id 427A9B40E6; Thu, 26 Nov 2009 12:30:59 -0500 (EST) In-Reply-To: (Lennart Borgman's message of "Thu, 26 Nov 2009 17:42:48 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux) X-detected-operating-system: by monty-python.gnu.org: Genre and OS details not recognized. X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:117829 Archived-At: > ;;; after emacs -Q > ;; gc => ((64567 . 8541) (14423 . 0) (726 . 107) 88519 295966 (50 . > 70) (347 . 97) (5376 . 3255)) > ;; Loading c:/emacs/p/091105/emacs/lisp/my-cus-load.el (source)...done > ;; gc => ((91214 . 17541) (21758 . 0) (722 . 111) 258011 294763 (50 . > 70) (348 . 96) (13174 . 4466)) So it's (/ 91214 64567.0) => 40% more cons-cells (/ 21758 14423.0) => 50% more symbols no significant change in markers (/ 258011 88519.0) => 3x times the string chars. no significant change in vectors no change in floats no significant change in intervals (aka text-properties) (/ 13174 5376.0) => 2.5 times the strings It can also be counted as 26K additional cons cells, 7K additional symbols, 170KB additional string chars, 8K additional strings, for a total of about: (+ (* 26000 8) (* 7000 24) 170000 (* 8000 16)) => 650KB So it ends up increasing Emacs's footprint by a bit less than a megabyte. It's not the end of the world, but it might be worthwhile trying to avoid loading this data unless it's really needed. Of course, maybe there's a way to represent the same info more compactly or to load it piecemeal (e.g. I've been using a local hack where C-h v foo-bar RET will try to load foo.el if foo-bar is not yet defined). Stefan