From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.bugs Subject: bug#32405: Turning misc objects into pseudovectors Date: Thu, 09 Aug 2018 12:24:48 -0400 Message-ID: References: <89c3c3be-4c08-32c7-7ecf-8bae1aa78305@cs.ucla.edu> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1533831852 13115 195.159.176.226 (9 Aug 2018 16:24:12 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 9 Aug 2018 16:24:12 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: 32405@debbugs.gnu.org To: Paul Eggert Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Aug 09 18:24:08 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fnnjJ-0003G7-6l for geb-bug-gnu-emacs@m.gmane.org; Thu, 09 Aug 2018 18:24:05 +0200 Original-Received: from localhost ([::1]:51899 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fnnlP-0001Bz-Sm for geb-bug-gnu-emacs@m.gmane.org; Thu, 09 Aug 2018 12:26:15 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:50115) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fnnlG-0001Aw-23 for bug-gnu-emacs@gnu.org; Thu, 09 Aug 2018 12:26:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fnnlC-0002OD-21 for bug-gnu-emacs@gnu.org; Thu, 09 Aug 2018 12:26:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:41068) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fnnlB-0002O3-VR for bug-gnu-emacs@gnu.org; Thu, 09 Aug 2018 12:26:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fnnlB-0001e6-Ll for bug-gnu-emacs@gnu.org; Thu, 09 Aug 2018 12:26:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 09 Aug 2018 16:26:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 32405 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 32405-submit@debbugs.gnu.org id=B32405.15338319066252 (code B ref 32405); Thu, 09 Aug 2018 16:26:01 +0000 Original-Received: (at 32405) by debbugs.gnu.org; 9 Aug 2018 16:25:06 +0000 Original-Received: from localhost ([127.0.0.1]:46086 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fnnkH-0001cl-Lw for submit@debbugs.gnu.org; Thu, 09 Aug 2018 12:25:05 -0400 Original-Received: from pruche.dit.umontreal.ca ([132.204.246.22]:53066) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fnnkE-0001cY-MU for 32405@debbugs.gnu.org; Thu, 09 Aug 2018 12:25:03 -0400 Original-Received: from fmsmemgm.homelinux.net (lechon.iro.umontreal.ca [132.204.27.242]) by pruche.dit.umontreal.ca (8.14.7/8.14.1) with ESMTP id w79GOmcH030252; Thu, 9 Aug 2018 12:24:49 -0400 Original-Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848) id 24720AE1F5; Thu, 9 Aug 2018 12:24:48 -0400 (EDT) In-Reply-To: <89c3c3be-4c08-32c7-7ecf-8bae1aa78305@cs.ucla.edu> (Paul Eggert's message of "Wed, 8 Aug 2018 22:01:09 -0700") X-NAI-Spam-Flag: NO X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0 X-NAI-Spam-Rules: 2 Rules triggered EDT_SA_DN_PASS=0, RV6348=0 X-NAI-Spam-Version: 2.3.0.9418 : core <6348> : inlines <6808> : streams <1795014> : uri <2686466> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:149383 Archived-At: >> AFAIK the main issue with pseudovectors is that their allocation is >> slower and suffers more from fragmentation (because we don't use >> a size-segregated allocation algorithm (like Linux's SLAB, for example) >> for them). > > Pseudovectors do have size-segregated allocation; see the vector_free_lists > array. Although it's not as fancy as Linux's SLAB, I hope it's enough for > Emacs; if not we could of course make it fancier. Ah, I had forgotten about vector_free_lists. So I guess it will likely suffer a bit more from fragmentation, but performance should be good enough, thanks. >> Are you sure the new code is faster overall? > That's what I measured with 'make compile-always', yes. Cool! > Of course this is just one benchmark. (My original intuition was that > nobody would notice the difference....) I think you're right. >> There is also a potential issue in terms of the resulting heap size of >> markers (which may bump up from 6 words to 8 words, IIRC, unless your >> patch does something to keep it down to 6) > On a 64-bit platform the heap size of markers does not grow. The old size is > 6 words (sizeof (union aligned_Lisp_Misc) is 48), and the new size is also > 6 words (sizeof (struct Lisp_Marker) is also 48). Perfect, thanks, Stefan