From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS22989 209.51.188.0/24 X-Spam-Status: No, score=-3.5 required=3.0 tests=AWL,BAYES_00,DKIM_INVALID, DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 706051F463 for ; Mon, 6 Jan 2020 16:50:15 +0000 (UTC) Received: from localhost ([::1]:54884 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioVa1-0005th-JB for normalperson@yhbt.net; Mon, 06 Jan 2020 11:50:13 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56976) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ioVZp-0005qt-Az for bug-gnulib@gnu.org; Mon, 06 Jan 2020 11:50:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ioVZo-000079-2k for bug-gnulib@gnu.org; Mon, 06 Jan 2020 11:50:01 -0500 Received: from mout.gmx.net ([212.227.15.15]:38735) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ioVZn-00005Z-JP for bug-gnulib@gnu.org; Mon, 06 Jan 2020 11:50:00 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1578329397; bh=7JoR8DCZ36isxbg4cDLvYWG6ZuJGFEjIEhmhp/pFmDc=; h=X-UI-Sender-Class:Subject:From:To:Cc:References:Date:In-Reply-To; b=JXZD5YV3xuNRil0KUX3tWuC3H0UIJiSqjGh6NBfA7p9hwM0556c3qn5HWN5HWnpUp Kv7gGTxk2GltPYsAEQ/28/WplT1nBj8ca9NTAGGsQ+f4qHR7xFTO9bL+y1pMBGFLQt e93JEi5+JOBLrulFeb1ZNIr8UNIZWh2nnVAbAnUc= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.111.218] ([31.17.216.109]) by mail.gmx.com (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MEm2D-1iuH7v3aRv-00GJXd; Mon, 06 Jan 2020 17:49:56 +0100 Subject: Re: string types From: =?UTF-8?Q?Tim_R=c3=bchsen?= To: Bruno Haible References: <175192568.e2XXTFFdkW@omega> <7775995.zBxFH0rR4k@omega> <9ac48e4c-9470-d64b-e14e-a3f66c9c00e1@gmx.de> <8097572.G4CVgrrz2P@omega> <1a26792b-2b5c-179a-b48b-23a7b6e33811@gmx.de> Autocrypt: addr=tim.ruehsen@gmx.de; prefer-encrypt=mutual; keydata= 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 Message-ID: <541c0a18-8e4f-3460-d6bd-4f66b16087d1@gmx.de> Date: Mon, 6 Jan 2020 17:49:56 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.3.1 MIME-Version: 1.0 In-Reply-To: <1a26792b-2b5c-179a-b48b-23a7b6e33811@gmx.de> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="3wNkVgYoXjPXJPxlMDoV5OXY1FLydAX0z" X-Provags-ID: V03:K1:+2G1Md86JXWaEWVZjXpFtymIB2Je2C8p1Tvu0Q4Tp5sUy/fifqC k4tEAeZj6ZrvJhGbJayXm5zMMC11UkniTy2DpoA63/Bs+hAcwPjRNg4NKpJ8y9K+G/ExX7F tIoLxxlX+iVtw09h5oghHm6nzYUJuKjZC134IZvioU+zdrtS0ogSpHwd2yADtbNetZ2BoNz iwoyFy70sGheXoA6Ij/Wg== X-UI-Out-Filterresults: notjunk:1;V03:K0:t42r+charfY=:7GauLOLHE4azBV6Y9UdHWW 9XeJI1iDSfhxuJNhCvGCehnvm5J7i+hnFXohF27FyoEI1JNY20DyLHBzNxxstnvkFKemIDQyI jMF62vBZzhQBA9pffnmapzRg+lWLx7AWbFL7St6dzTq/L+3MD4aC1QFcAGA9DeVpnlxc2g34v oYOQWWIZZ77xbiI+U46HR7mh5AZs2+vL+rPmh9DD2OJxaURTrjJj/NQ2pgK+2evdyBWEMi8P7 xyyzi+7HEVtXsSjALsxx2Zjpb/69dxMseAuW/CSPlgWCkyFXf6tbcZ1/Hz5VdjvX4yg9qDMKZ HVdwCBxLsqEkk87ILrHos+eDjGL/oVwpC3dk+aFPb3mvokRDoiR3kGwpPXdUJXPj3RQYd4pQO NC7YsymyjggskBA75O/6hRiGIiMAv1JJmiVIxTXSok0cS1qb3IUrZhjz6MriKaaA1ZHh5enux zqu9CKS9yN9jcO38wdcp/sjI5bbd2QGE5amtIZw12L2upM9/ur+7H503pYpPVtDfutaktC+RN TqTeEyxI+p1lod67hKNmPdDkEjyMFDgmL7Vzvd1M/HA4jWHSnQWrXdRljFOk4DWLeVoNlvE7z YUqNshwEE/Pkxx10VzABQ+JoQwhkuvjRWE0yMortt+QtBtGMvd9ox3Y4NwNvp0rRpy+4ph7jX mVcijmtQMFccilZkpRETS0azA9AoP5Ekb/UklxrNctD16EGZvToiQFNXpajIw8B8+T4E53IJo R/CSu8S85demOHri6FMnC3J7aphqYNzMDUd2Wt9UF5mtXgOawpSIH1aeUVf48JZ3Uylpc0meo eWRbnpaEyqi6P+/igpkYQLlcMxIrFBmxZEzGOF1v9QUoXeCfE0hDM4Tp6A5TIuIG3W/0jcQR9 4rcapb0vg/Ez3hFFDqX2CgurZGWb09olYW8lKKOICr1O8Wjbel5/pXvhTzdoSTsjx7oXaNA8U psmJzhvf7H6j+LwtGe8q13+g70P6ViGk5HiZk8hj/6zgKNGNZNqPRrySnxJBsHq1JDcceY1EL aK+nMGCzvA7yLCVob3jqpYvYqVeJER/4aF+m4eowpfMq1qMWwTTgz8mW2LfW4uaSNpRIXzev1 reUybW3trY1TOAFSnZ54X/jWS2P7WNojORrctf5SGHZ7P++501QBOJ7t5dROtRHcnhsk5NN4Y xYmXw4NH3oa7lRTdete6h0Jmb5SxLrVltyF9e0zdvE3jABANDHehXHqQlD2CYim+Mwq81Q6rx BdBlKNSyy7OctGmhv3Ly4Z+UoqpFp3jiyWIdRDQuZLYXvMSkEcpWUXLcLr6Q= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.15.15 X-BeenThere: bug-gnulib@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Gnulib discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: bug-gnulib@gnu.org, ag Errors-To: bug-gnulib-bounces+normalperson=yhbt.net@gnu.org Sender: "bug-gnulib" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --3wNkVgYoXjPXJPxlMDoV5OXY1FLydAX0z Content-Type: multipart/mixed; boundary="YMEvj10rn1l9kyCY8XIBYTGOWZMzVhDQ2"; protected-headers="v1" From: =?UTF-8?Q?Tim_R=c3=bchsen?= To: Bruno Haible Cc: ag , bug-gnulib@gnu.org Message-ID: <541c0a18-8e4f-3460-d6bd-4f66b16087d1@gmx.de> Subject: Re: string types References: <175192568.e2XXTFFdkW@omega> <7775995.zBxFH0rR4k@omega> <9ac48e4c-9470-d64b-e14e-a3f66c9c00e1@gmx.de> <8097572.G4CVgrrz2P@omega> <1a26792b-2b5c-179a-b48b-23a7b6e33811@gmx.de> In-Reply-To: <1a26792b-2b5c-179a-b48b-23a7b6e33811@gmx.de> --YMEvj10rn1l9kyCY8XIBYTGOWZMzVhDQ2 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 1/6/20 5:08 PM, Tim R=C3=BChsen wrote: >> * What about reusing the complete vasnprintf.c for (B), rather than >> adding another, limited printf-like implementation? >=20 > Yes, would be nice. At least for appending we need an extra > malloc/malloc/memcpy/free. >=20 > vasnprintf reallocates RESULTBUF that means we can't use a stack > allocated buffer - thus we lose the performance advantage. Or should we= > try snprintf first and fallback to vasnprintf in case of truncation ? >=20 > We want another module e.g. buffer-printf to not pull in vasnprintf whe= n > not needing printf-like buffer functions. >=20 > Once the buffer module is done, we could think of amending vasnprintf t= o > better play with the buffer type. Just made a speed comparison between vasnprintf and wget_buffer_printf, 10m times executed, within a stack-only szenario (no reallocations), gcc 9.2.1, -O1 -g. asnprintf(sbuf, &size, "%d", i); takes 0m2.727s wget_buffer_printf(&buf, "%d", i); takes 0m0.226s char s[]=3D"123"; asnprintf(sbuf, &size, "%s", s); takes 0m2.282s wget_buffer_printf(&buf, "%s", s); takes 0m0.212s It tells me that vasnprintf has a huge startup overhead. Perhaps we can tweak that a little bit. the vasnprintf program that I run for %d: #include void main(void) { char sbuf[256]; size_t size =3D sizeof(sbuf); for (int i=3D0;i<1000000;i++) { asnprintf(sbuf, &size, "%d", i); asnprintf(sbuf, &size, "%d", i); asnprintf(sbuf, &size, "%d", i); asnprintf(sbuf, &size, "%d", i); asnprintf(sbuf, &size, "%d", i); asnprintf(sbuf, &size, "%d", i); asnprintf(sbuf, &size, "%d", i); asnprintf(sbuf, &size, "%d", i); asnprintf(sbuf, &size, "%d", i); asnprintf(sbuf, &size, "%d", i); } } --YMEvj10rn1l9kyCY8XIBYTGOWZMzVhDQ2-- --3wNkVgYoXjPXJPxlMDoV5OXY1FLydAX0z Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEHLJ9vJhhSy1YQWRtCDAttqJnBCgFAl4TZTQACgkQCDAttqJn BCh6MQ//V7nD4f3MY3fQ2sV9JuGoFKyr1npr3jtGUXmbxVQF9GSTajLHHFMlB2b2 6afoupCUqo49XMOqSlseOIwt9GFrTsCcA4dOaMP/F/6eqF2S9LoLOMPir+RkwsEe 4uyOPAdiWG2u18JjSOLMN67iPZ8B74sHDhOgO8oJcuw2vIaCdRp1jM2zt7+K6PwM 1vTFNh+pTPJGOqelS/JUYRajjZjQtBVVwsiAIqO2C8r5dzqlGc5lXclNPF7vDXdL McptLE03cvX2BCLz9GFsEvrkgnaWjCePgWEnvnyBvHiqZpNgTN1Azrn6f11M3cHe Pm0a3ZXI+uNkl+N5EfjapoyF+lUOKJ7ANkOrH2ck6m3u8IcJUMKuCxELcwUgIXCi H9wFaWmUMfMc+BCorTc3st/eqP+fl4pdBXL+eHPtfk/z1A5fswaU/IdGwY5HJgIs LrgVZdLgvmRWzDFPthGWuoiC3KEIqWNoESNKX3YFMNDy20rpT11z2ok+dmkNE6/8 JbvOhc8+USCCjBQZG15XA03Gcy0KtDFAbGM3RLozlyx5CYc79cSOO70M9KNEw2x7 JaLw3oQIrWxi/DiwfFeekZCiVnhnN6mRTcE8JgkVSikAjiV+ovYTRZK3GZvWxBoJ oMquNAJpbTwQQA1/RXaKZ8AFsrT6XNzkeYwYneSRKlRR8J5FKS0= =lt26 -----END PGP SIGNATURE----- --3wNkVgYoXjPXJPxlMDoV5OXY1FLydAX0z--