From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: David Kastrup Newsgroups: gmane.emacs.help Subject: Re: obarray confusion Date: Fri, 29 Oct 2010 12:12:31 +0200 Organization: Organization?!? Message-ID: <87aalxjoj4.fsf@lola.goethe.zz> References: <87sjzr8boe.fsf@kuiper.lan.informatimago.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: dough.gmane.org 1291882230 25121 80.91.229.12 (9 Dec 2010 08:10:30 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 9 Dec 2010 08:10:30 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Thu Dec 09 09:10:25 2010 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1PQba5-0003UI-DB for geh-help-gnu-emacs@m.gmane.org; Thu, 09 Dec 2010 09:10:25 +0100 Original-Received: from localhost ([127.0.0.1]:35955 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PQba4-0002Cu-6z for geh-help-gnu-emacs@m.gmane.org; Thu, 09 Dec 2010 03:10:24 -0500 Original-Path: usenet.stanford.edu!fu-berlin.de!news.unit0.net!noris.net!newsfeed.arcor.de!newsspool3.arcor-online.net!news.arcor.de.POSTED!not-for-mail Original-Newsgroups: gnu.emacs.help X-Face: 2FEFf>]>q>2iw=B6, xrUubRI>pR&Ml9=ao@P@i)L:\urd*t9M~y1^:+Y]'C0~{mAl`oQuAl \!3KEIp?*w`|bL5qr,H)LFO6Q=qx~iH4DN; i"; /yuIsqbLLCh/!U#X[S~(5eZ41to5f%E@'ELIi$t^ Vc\LWP@J5p^rst0+('>Er0=^1{]M9!p?&:\z]|;&=NP3AhB!B_bi^]Pfkw User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) Cancel-Lock: sha1:p8eZqf0EdT/6LIuSc/r96QmleSE= Original-Lines: 21 Original-NNTP-Posting-Date: 29 Oct 2010 12:12:31 CEST Original-NNTP-Posting-Host: ccedc7f1.newsspool1.arcor-online.net Original-X-Trace: DXC=_FSXZ20EbCm^Y=RbYBPl4`ic==]BZ:afn4Fo<]lROoRa<`=YMgDjhgbB:X[B0dT9:`1_LiI6ENVam3>5MOK`al0oRj0Q:[onGe2]jDOj4Y4SoZRj Original-X-Complaints-To: usenet-abuse@arcor.de Original-Xref: usenet.stanford.edu gnu.emacs.help:182105 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:76860 Archived-At: pjb@informatimago.com (Pascal J. Bourguignon) writes: > Sean McAfee writes: > >> (mapatoms (lambda (s) (incf n))) tells me I have 43061 symbols defined. >> (length obarray) tells me the standard obarray has a size of 1511. >> >> My understanding is that an obarray is essentially a hash table with >> collision chaining. But this would mean that the linked list of symbols >> in each bucket has an average length of 43061 / 1511 ≈ 28. >> >> Emacs's symbol lookup couldn't possibly be that inefficient, could it? > > Symbols are interned only when they are read, which doesn't occur often. 28 is quite the bucket size. If the average bucket size is larger than 1 for the dumped Emacs already, that's just a case of bad defaults, and of course it should affect byte compilation times quite a bit. -- David Kastrup