From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca (simark.ca [158.69.221.121]) by sourceware.org (Postfix) with ESMTPS id 091143857C4D for ; Tue, 1 Sep 2020 14:30:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 091143857C4D Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=simark.ca Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=simark@simark.ca Received: from [10.0.0.11] (173-246-6-90.qc.cable.ebox.net [173.246.6.90]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id B55941E055; Tue, 1 Sep 2020 10:30:48 -0400 (EDT) Subject: Re: [PATCH] Have partial symbol tables own psymbol vectors To: Tom Tromey Cc: gdb-patches@sourceware.org References: <20200828193304.17475-1-tom@tromey.com> <871rjo7xic.fsf@tromey.com> <87sgc27nez.fsf@tromey.com> <2898fce1-5b22-29ce-3338-01dc3ee629a9@simark.ca> <87o8mp7f57.fsf@tromey.com> From: Simon Marchi Message-ID: <0d25239a-2362-1686-56f8-f61ecc6edbbf@simark.ca> Date: Tue, 1 Sep 2020 10:30:48 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 In-Reply-To: <87o8mp7f57.fsf@tromey.com> Content-Type: text/plain; charset=utf-8 Content-Language: fr Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, NICE_REPLY_A, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Sep 2020 14:30:50 -0000 On 2020-09-01 10:20 a.m., Tom Tromey wrote: >>>>>> "Simon" == Simon Marchi writes: > > Simon> On 2020-08-31 1:09 p.m., Tom Tromey wrote: >>> The main drawback of this patch is that it increases the size of >>> partial symtab. > > Simon> Regarding this: it seems to me like in the end, no more memory is used (even when > Simon> sharing partial symtabs between objfiles), it's just moved around, is that right? > Simon> If so, I don't understand why you say it's a "drawback", doesn't it make it sound > Simon> a bit scarier than it actually is? > > No, a bit more memory is used. > > Right now there are 2 std::vector<>s used for globals and static. (And > there is a pair used to track the vectors being updated.) > > Each partial symtab currently has integer indexes into these vectors. > > After the patch, the vectors are removed from the psymtab storage (this > is per-objfile, so IMO negligible), but now each partial symtab holds > two vectors. On my machine (x86-64 with GNU libstdc++), a std::vector<> > is 24 bytes. So, we're going from 4*sizeof(int) == 16 bytes per partial > symtab to 48 bytes per. Ok, I see. I don't think that's a problem. Simon