From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id WJkGOsSGN2FDAgAAgWs5BA (envelope-from ) for ; Tue, 07 Sep 2021 17:35:32 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id SCuYNcSGN2EyCgAA1q6Kng (envelope-from ) for ; Tue, 07 Sep 2021 15:35:32 +0000 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 aspmx1.migadu.com (Postfix) with ESMTPS id ACCAB1999 for ; Tue, 7 Sep 2021 17:35:31 +0200 (CEST) Received: from localhost ([::1]:34344 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mNd8E-0001T5-Nb for larch@yhetil.org; Tue, 07 Sep 2021 11:35:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47766) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mNd7n-0001RR-75 for guix-patches@gnu.org; Tue, 07 Sep 2021 11:35:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:45857) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mNd7m-0007tR-GC for guix-patches@gnu.org; Tue, 07 Sep 2021 11:35:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mNd7m-0000wL-BY for guix-patches@gnu.org; Tue, 07 Sep 2021 11:35:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#50456] Optimise bytevector->nix-base32-string and bytevector->base16-string. Resent-From: Maxime Devos Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 07 Sep 2021 15:35:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 50456 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: 50456@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.16310288933583 (code B ref -1); Tue, 07 Sep 2021 15:35:02 +0000 Received: (at submit) by debbugs.gnu.org; 7 Sep 2021 15:34:53 +0000 Received: from localhost ([127.0.0.1]:57402 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNd7c-0000vg-Jg for submit@debbugs.gnu.org; Tue, 07 Sep 2021 11:34:53 -0400 Received: from lists.gnu.org ([209.51.188.17]:37578) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNd7Z-0000vX-UM for submit@debbugs.gnu.org; Tue, 07 Sep 2021 11:34:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47716) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mNd7X-0001LK-Bv for guix-patches@gnu.org; Tue, 07 Sep 2021 11:34:49 -0400 Received: from michel.telenet-ops.be ([2a02:1800:110:4::f00:18]:54396) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mNd7T-0007V5-WF for guix-patches@gnu.org; Tue, 07 Sep 2021 11:34:47 -0400 Received: from butterfly.local ([188.188.3.227]) by michel.telenet-ops.be with bizsmtp id r3ad2500K4tskic063aeyc; Tue, 07 Sep 2021 17:34:38 +0200 Message-ID: <7831fcdd8b8aab99cc95ba904076014b4c3cb6d2.camel@telenet.be> From: Maxime Devos Date: Tue, 07 Sep 2021 17:34:28 +0200 Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-c8JIs8y52Y+SRXZX2cwe" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1631028878; bh=W44FlGgv4GCh8GmH2khGm2mCRpX3UPW/VMeE/4kDzLs=; h=Subject:From:To:Date; b=oh+WLei3DZiBTf8HjkSIdvRoP9OsfrBvblI4PCNWiP1JC0oVqR0sD402T/EMF9VwR Ume6bf2tUgBH0Tz1VkPC4Dmb2HlIPzr8hVXDkp70b+ujyzZwDgXluM+4RcAi5usOH2 NXV9E6WZk1l45b+WtB0gdf4S3lmxyrvPhZRvJenheozfoK3H/C0zNnOtr14ehL1n8C Ov1BLAbUYyhJ8i/e6KMUSE6vdLujUbLRFQs4cDbpGnOTOeCi97Sff7D/BHhnC2p3OA 8RZp1IKfRus7bg6yD1/N6KyIItXL6PWC37e7kwteHmhfGpzZHiL3vqHM4Rd4FiIBbZ 8WXLQfrnZAaSw== Received-SPF: pass client-ip=2a02:1800:110:4::f00:18; envelope-from=maximedevos@telenet.be; helo=michel.telenet-ops.be X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, LOTS_OF_MONEY=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1631028932; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:list-id:list-help:list-unsubscribe:list-subscribe: list-post:dkim-signature; bh=W44FlGgv4GCh8GmH2khGm2mCRpX3UPW/VMeE/4kDzLs=; b=Dz5JjQTmmn7/lUc8CZGhc7R9anORqS6foCHkvTiQ0SJKzHmfyIBbCyrcclRat9Nwhmfe4/ xvVIn1yFp1QI5JZETtWakpOlUuiPV+whGcw9YKKbf+PMy/VQwjl6T5e90baxMCfqmP2g3C 0ynkFg65c4JyRe4Dhk+zW+Rigq5MzzTLpumPZxy3pPSDS669mz7mKXOJ3si8Fr3XpaLjgS hmf5H/c48sFrF9VzC+uYnaZkv4+gwVy47SVr0pripNZ1IRQATIJR1EjhvtP6Siy+xetUO0 ihL9NESPZmtOhnIb3oc2pE7iMapISjOnx/kcf9ZAXtamWUdL3PSBtad8ClgWoA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1631028932; a=rsa-sha256; cv=none; b=V6bd3Ovmm9FlA3etd1cVdVAIrHf8BtoTjGGHPSlZyMypDGKmUR0pUNNCpOWeZvupso1G6J pQWC43F6ZbK86eAesJ6CxhnyCl93wdyTgs2uFotjyUe+oh9eM/3GCgridjIKVn4g21xuff bl4RQBLjTxPMo4XmCxTRq0z9wmmQ1rdBWSKHgoeLV06xylpDtb+UR34gjNJwqe8lxdb51e iztTkHjEjQGhGKnGb32QBAD408RDO3kxtK4c5acleA3FgpL2GKupfoobOq28JEaRfTTCmY snPh8bMYCpRSakTkiNIBNzB8RUT8UbBUt55z+5K/31CAVKkU/iKTK570ikJeag== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=telenet.be header.s=r21 header.b=oh+WLei3; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Spam-Score: -0.81 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=telenet.be header.s=r21 header.b=oh+WLei3; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: ACCAB1999 X-Spam-Score: -0.81 X-Migadu-Scanner: scn0.migadu.com X-TUID: 4O+RiJjMr8WB --=-c8JIs8y52Y+SRXZX2cwe Content-Type: multipart/mixed; boundary="=-Gw1QlRQZ6lezhoMpQtOV" --=-Gw1QlRQZ6lezhoMpQtOV Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi guix, The two atached patches optimise bytevector->nix-base32-string and bytevector->base16-string, making them about 20% and two times faster respectively, by reducing allocations. They are called from 'output-path', 'fixed-output-path' and 'store-path' in (guix store). Unfortunately, this does not decrease timings to a noticable degree, but it does decrease the allocated memory by 2.3% (*), and it does not seem to increase timings. (See perf-numbers.txt.) (*) GUIX_PROFILING=3Dgc guix build -d pigx --no-grafts Greetings, Maxime. --=-Gw1QlRQZ6lezhoMpQtOV Content-Disposition: inline; filename*0=0001-base32-Reduce-GC-pressure-in-make-bytevector-base32-.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-base32-Reduce-GC-pressure-in-make-bytevector-base32-.patch"; charset="UTF-8" RnJvbSBhOTNiYWQ2MjllMjc0NmM3NzQ0NmNhY2RkYjk5ODY1MDZjZTliYTg4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFN1biwgNSBTZXAgMjAyMSAxNjoyODozMyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMS8y XSBiYXNlMzI6IFJlZHVjZSBHQyBwcmVzc3VyZSBpbgogbWFrZS1ieXRldmVjdG9yLT5iYXNlMzIt c3RyaW5nLgoKVGhlIGZvbGxvd2luZyBjb2RlIGhhcyBiZWVuIHVzZWQgdG8gY29tcGFyZSBwZXJm b3JtYW5jZToKCjs7IGZpcnN0IDIwIGJ5dGVzIG9mIHNoYTI1NiBvZiAjdnU4KCN4ZGUgI3hhZCAj eGJlICN4ZWYpCihkZWZpbmUgYnYgI3Z1OCg5NSAxMjAgMTk1IDUwIDExNiAyMjggNjMgMTY5IDIy MiA4NiA4OSAzOCA5MiAyOSAxNDUgMTI2IDM3IDE5MiA1NSAzNCkpCixwcm9maWxlCihsZXQgbG9v cCAoKG4gMCkpCiAgKHdoZW4gKDwgbiAjZTFlNikKICAgICAoKEAgKGd1aXggYmFzZTMyKSBieXRl dmVjdG9yLT5uaXgtYmFzZTMyLXN0cmluZykgYnYpCiAgICAgKGxvb3AgKCsgbiAxKSkpKQoKQmVm b3JlIHRoaXMgY2hhbmdlLCB0aGUgb3V0cHV0IHdhczoKClsuLi5dClNhbXBsZSBjb3VudDogMTE0 MApUb3RhbCB0aW1lOiAyNy40NjU1NjAwMTggc2Vjb25kcyAoMTAuNjU5MzMxNDMzIHNlY29uZHMg aW4gR0MpCgpBZnRlciB0aGlzIGNoYW5nZSwgdGhlIG91dHB1dCB3YXM6CgpbLi4uXQpTYW1wbGUg Y291bnQ6IDk1NwpUb3RhbCB0aW1lOiAyMC40Nzg4NDcxNDMgc2Vjb25kcyAoNi4xMzk3MjExODkg c2Vjb25kcyBpbiBHQykKCiogZ3VpeC9iYXNlMzIuc2NtCiAgKG1ha2UtYnl0ZXZlY3Rvci0+YmFz ZTMyLXN0cmluZyk6IEVsaW1pbmF0ZSAncmV2ZXJzZScsIHVzZSBtdXRhdGlvbiBpbnN0ZWFkLgot LS0KIGd1aXgvYmFzZTMyLnNjbSB8IDE4ICsrKysrKysrKysrKy0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDEyIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ3VpeC9i YXNlMzIuc2NtIGIvZ3VpeC9iYXNlMzIuc2NtCmluZGV4IDQ5ZjE5MWJhMjYuLmU3NmJmMzVlY2Mg MTAwNjQ0Ci0tLSBhL2d1aXgvYmFzZTMyLnNjbQorKysgYi9ndWl4L2Jhc2UzMi5zY20KQEAgLTE0 MSwxMiArMTQxLDE4IEBAIHRoZSBwcmV2aW91cyBhcHBsaWNhdGlvbiBvciBJTklULiIKIChkZWZp bmUgKG1ha2UtYnl0ZXZlY3Rvci0+YmFzZTMyLXN0cmluZyBxdWludGV0LWZvbGQgYmFzZTMyLWNo YXJzKQogICAobGFtYmRhIChidikKICAgICAiUmV0dXJuIGEgYmFzZTMyIGVuY29kaW5nIG9mIEJW IHVzaW5nIEJBU0UzMi1DSEFSUyBhcyB0aGUgYWxwaGFiZXQuIgotICAgIChsZXQgKChjaGFycyAo cXVpbnRldC1mb2xkIChsYW1iZGEgKHEgcikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChjb25zICh2ZWN0b3ItcmVmIGJhc2UzMi1jaGFycyBxKQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcikpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JygpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnYpKSkKLSAgICAgIChsaXN0LT5z dHJpbmcgKHJldmVyc2UgY2hhcnMpKSkpKQorICAgIDs7IE11dGF0aW9uIGNhbiBiZSBhdm9pZGVk IHdpdGggJ3JldmVyc2UnLiAgSG93ZXZlciwgdGhhdCB3b3VsZAorICAgIDs7IG1ha2UgdGhpcyBw cm9jZWR1cmUgYWJvdXQgMzAlIHNsb3dlciBkdWUgdG8gdGhlIGV4dHJhIEdDIHByZXNzdXJlLgor ICAgIChsZXQqICgoc3RhcnQgKGNvbnMgI2YgI2YpKQorICAgICAgICAgICAoZW5kIChxdWludGV0 LWZvbGQgKGxhbWJkYSAocSByKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVm aW5lIHBhaXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ucyAodmVjdG9y LXJlZiBiYXNlMzItY2hhcnMgcSkgI2YpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoc2V0LWNkciEgciBwYWlyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWly KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJ2KSkpCisgICAgICAoc2V0LWNkciEgZW5kICcoKSkKKyAgICAgIChsaXN0 LT5zdHJpbmcgKGNkciBzdGFydCkpKSkpCiAKIChkZWZpbmUgJW5peC1iYXNlMzItY2hhcnMKICAg OzsgU2VlIGBsaWJ1dGlsL2hhc2guY2MnLgotLSAKMi4zMy4wCgo= --=-Gw1QlRQZ6lezhoMpQtOV Content-Disposition: inline; filename*0=0002-base16-Reduce-GC-pressure-in-bytevector-base16-strin.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0002-base16-Reduce-GC-pressure-in-bytevector-base16-strin.patch"; charset="UTF-8" RnJvbSBkZmQ5Yjc1NTdlMzE4MjMzMjBmY2JkN2FiZWQ3N2RlMjk1YjdkY2UxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IE1vbiwgNiBTZXAgMjAyMSAwMDo0NjoxNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMi8y XSBiYXNlMTY6IFJlZHVjZSBHQyBwcmVzc3VyZSBpbiBieXRldmVjdG9yLT5iYXNlMTYtc3RyaW5n LgoKVGhpcyBtYWtlcyBieXRldmVjdG9yLT5iYXNlMTYtc3RyaW5nIHR3byB0aW1lcyBmYXN0ZXIu CgoqIGd1aXgvYmFzZTE2LnNjbSAoYnl0ZXZlY3Rvci0+YmFzZTE2LXN0cmluZyk6IFVzZSB1dGY4 LT5zdHJpbmcKICBhbmQgaXRlcmF0aW9uIGluc3RlYWQgb2Ygc3RyaW5nLWNvbmNhdGVuYXRlIGFu ZCBuYW1lZCBsZXQuCi0tLQogZ3VpeC9iYXNlMTYuc2NtIHwgNDQgKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMyBpbnNlcnRpb25z KCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ndWl4L2Jhc2UxNi5zY20gYi9ndWl4 L2Jhc2UxNi5zY20KaW5kZXggNmMxNWE5ZjU4OC4uOWFjOTY0ZGZmMCAxMDA2NDQKLS0tIGEvZ3Vp eC9iYXNlMTYuc2NtCisrKyBiL2d1aXgvYmFzZTE2LnNjbQpAQCAtMSw1ICsxLDYgQEAKIDs7OyBH TlUgR3VpeCAtLS0gRnVuY3Rpb25hbCBwYWNrYWdlIG1hbmFnZW1lbnQgZm9yIEdOVQogOzs7IENv cHlyaWdodCDCqSAyMDEyLCAyMDE0LCAyMDE3IEx1ZG92aWMgQ291cnTDqHMgPGx1ZG9AZ251Lm9y Zz4KKzs7OyBDb3B5cmlnaHQgwqkgMjAyMSBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVu ZXQuYmU+CiA7OzsKIDs7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgR3VpeC4KIDs7OwpAQCAt MzIsMjcgKzMzLDI4IEBACiAKIChkZWZpbmUgKGJ5dGV2ZWN0b3ItPmJhc2UxNi1zdHJpbmcgYnYp CiAgICJSZXR1cm4gdGhlIGhleGFkZWNpbWFsIHJlcHJlc2VudGF0aW9uIG9mIEJWJ3MgY29udGVu dHMuIgotICAoZGVmaW5lIGxlbgotICAgIChieXRldmVjdG9yLWxlbmd0aCBidikpCi0KLSAgKGxl dC1zeW50YXggKChiYXNlMTYtY2hhcnMgKGxhbWJkYSAocykKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoc3ludGF4LWNhc2UgcyAoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKF8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgodiAobGlz dC0+dmVjdG9yCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1 bmZvbGQgKGN1dCA+IDw+IDI1NSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGFtYmRhIChuKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdCAjZiAifjIsJzB4IiBuKSkKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApKSkpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2KSkpKSkpCi0gICAgKGRlZmluZSBjaGFy cyBiYXNlMTYtY2hhcnMpCi0gICAgKGxldCBsb29wICgoaSBsZW4pCi0gICAgICAgICAgICAgICAo ciAnKCkpKQotICAgICAgKGlmICh6ZXJvPyBpKQotICAgICAgICAgIChzdHJpbmctY29uY2F0ZW5h dGUgcikKLSAgICAgICAgICAobGV0ICgoaSAoLSBpIDEpKSkKLSAgICAgICAgICAgIChsb29wIGkK LSAgICAgICAgICAgICAgICAgIChjb25zICh2ZWN0b3ItcmVmIGNoYXJzIChieXRldmVjdG9yLXU4 LXJlZiBidiBpKSkgcikpKSkpKSkKKyAgKGRlZmluZSBsZW4gKGJ5dGV2ZWN0b3ItbGVuZ3RoIGJ2 KSkKKyAgKGRlZmluZSB1dGY4IChtYWtlLWJ5dGV2ZWN0b3IgKCogbGVuIDIpKSkKKyAgKGxldC1z eW50YXggKChiYXNlMTYtb2N0ZXQtcGFpcnMKKyAgICAgICAgICAgICAgICAobGFtYmRhIChzKQor ICAgICAgICAgICAgICAgICAgKHN5bnRheC1jYXNlIHMgKCkKKyAgICAgICAgICAgICAgICAgICAg KF8KKyAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctPnV0ZjgKKyAgICAgICAgICAgICAgICAg ICAgICAoc3RyaW5nLWNvbmNhdGVuYXRlCisgICAgICAgICAgICAgICAgICAgICAgICh1bmZvbGQg KGN1dCA+IDw+IDI1NSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChu KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdCAjZiAifjIsJzB4IiBu KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDApKSkpKSkpKQorICAgIChkZWZpbmUgb2N0ZXQtcGFpcnMgYmFzZTE2LW9j dGV0LXBhaXJzKQorICAgIChsZXQgbG9vcCAoKGkgMCkpCisgICAgICAod2hlbiAoPCBpIGxlbikK KyAgICAgICAgKGJ5dGV2ZWN0b3ItdTE2LW5hdGl2ZS1zZXQhCisgICAgICAgICB1dGY4ICgqIDIg aSkKKyAgICAgICAgIChieXRldmVjdG9yLXUxNi1uYXRpdmUtcmVmIG9jdGV0LXBhaXJzCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAyIChieXRldmVjdG9yLXU4LXJlZiBi diBpKSkpKQorICAgICAgICAobG9vcCAoKyBpIDEpKSkpCisgICAgKHV0ZjgtPnN0cmluZyB1dGY4 KSkpCiAKIChkZWZpbmUgYmFzZTE2LXN0cmluZy0+Ynl0ZXZlY3RvcgogICAobGV0ICgoY2hhcnMt PnZhbHVlIChmb2xkIChsYW1iZGEgKGkgcikKLS0gCjIuMzMuMAoK --=-Gw1QlRQZ6lezhoMpQtOV Content-Disposition: inline; filename="perf-numbers.txt" Content-Transfer-Encoding: base64 Content-Type: text/plain; name="perf-numbers.txt"; charset="UTF-8" d2hpbGUgdHJ1ZTsgZG8gdGltZSBHVUlYX1BST0ZJTElORz1nYyAuL3RoZS11bm9wdGltaXNlZC1i YXNlTi1ndWl4L2Jpbi9ndWl4IGJ1aWxkIC1kIHBpZ3ggLS1uby1ncmFmdHM7IGRvbmUKCiMgRmly c3QgcnVuIHJlbW92ZWQKL2dudS9zdG9yZS9mcTZ4OGQydmNtNnNiamtpbWc3ZzhrY2diNGM1eHYx Yi1waWd4LTAuMC4zLmRydgpHYXJiYWdlIGNvbGxlY3Rpb24gc3RhdGlzdGljczoKICBoZWFwIHNp emU6ICAgICAgICA5My44NSBNaUIKICBhbGxvY2F0ZWQ6ICAgICAgICAzMjUuMjAgTWlCCiAgR0Mg dGltZXM6ICAgICAgICAgMTgKICB0aW1lIHNwZW50IGluIEdDOiAzLjY5IHNlY29uZHMgKDI0JSBv ZiB1c2VyIHRpbWUpCgpyZWFsCTBtMTUsMDY2cwp1c2VyCTBtMTUsMTQ5cwpzeXMJMG0wLDcwOXMK L2dudS9zdG9yZS9mcTZ4OGQydmNtNnNiamtpbWc3ZzhrY2diNGM1eHYxYi1waWd4LTAuMC4zLmRy dgpHYXJiYWdlIGNvbGxlY3Rpb24gc3RhdGlzdGljczoKICBoZWFwIHNpemU6ICAgICAgICA5My44 NSBNaUIKICBhbGxvY2F0ZWQ6ICAgICAgICAzMjUuMTkgTWlCCiAgR0MgdGltZXM6ICAgICAgICAg MTgKICB0aW1lIHNwZW50IGluIEdDOiAzLjcwIHNlY29uZHMgKDI0JSBvZiB1c2VyIHRpbWUpCgpy ZWFsCTBtMTUsOTI0cwp1c2VyCTBtMTUsNjk1cwpzeXMJMG0wLDgzNnMKL2dudS9zdG9yZS9mcTZ4 OGQydmNtNnNiamtpbWc3ZzhrY2diNGM1eHYxYi1waWd4LTAuMC4zLmRydgpHYXJiYWdlIGNvbGxl Y3Rpb24gc3RhdGlzdGljczoKICBoZWFwIHNpemU6ICAgICAgICA5My44NSBNaUIKICBhbGxvY2F0 ZWQ6ICAgICAgICAzMjUuMjAgTWlCCiAgR0MgdGltZXM6ICAgICAgICAgMTgKICB0aW1lIHNwZW50 IGluIEdDOiAzLjY2IHNlY29uZHMgKDI0JSBvZiB1c2VyIHRpbWUpCgpyZWFsCTBtMTUsMzY5cwp1 c2VyCTBtMTUsMzM5cwpzeXMJMG0wLDcwNHMKL2dudS9zdG9yZS9mcTZ4OGQydmNtNnNiamtpbWc3 ZzhrY2diNGM1eHYxYi1waWd4LTAuMC4zLmRydgpHYXJiYWdlIGNvbGxlY3Rpb24gc3RhdGlzdGlj czoKICBoZWFwIHNpemU6ICAgICAgICA5My44NSBNaUIKICBhbGxvY2F0ZWQ6ICAgICAgICAzMjUu MjAgTWlCCiAgR0MgdGltZXM6ICAgICAgICAgMTgKICB0aW1lIHNwZW50IGluIEdDOiAzLjY5IHNl Y29uZHMgKDI1JSBvZiB1c2VyIHRpbWUpCgpyZWFsCTBtMTQsODg5cwp1c2VyCTBtMTUsMDY2cwpz eXMJMG0wLDY3OXMKClN1bW1hcnkuCgooZGVmaW5lIChhdmcgLiByKSAoLyAoYXBwbHkgKyByKSAo bGVuZ3RoIHIpKSkKKGRlZmluZSAoc3RkZGV2IC4gcikgKCogKC8gKGxlbmd0aCByKSAoLSAobGVu Z3RoIHIpIDEpKSAoc3FydCAoYXBwbHkgYXZnIChtYXAgKGxhbWJkYSAoeCkgKGV4cHQgKC0geCAo YXBwbHkgYXZnIHIpKSAyKSkgcikpKSkpCgooZGVmaW5lICAldGltZS9nYyAnKDMuNjkgMy43MCAz LjY2IDMuNjkpKQoodmFsdWVzIChhcHBseSBhdmcgJXRpbWUvZ2MpIChhcHBseSBzdGRkZXYgJXRp bWUvZ2MpKQokNyA9IDMuNjg1CiQ4ID0gMC4wMTk5OTk5OTk5OTk5OTk5NwoKKGRlZmluZSAgJXJl YWwgJygxNS4wNjYgMTUuOTI0IDE1LjM2OSAxNC44ODkpKQooZGVmaW5lICAldXNlciAnKDE1LjE0 OSAxNS42OTUgMTUuMzM5IDE1LjA2NikpCihkZWZpbmUgICVzeXMgICcoMC43MDkgMC44MzYgMC43 MDQgMC42NzkpKQoKKHZhbHVlcyAoYXBwbHkgYXZnICVyZWFsKSAoYXBwbHkgc3RkZGV2ICVyZWFs KSkKJDEgPSAxNS4zMTIwMDAwMDAwMDAwMDEKJDIgPSAwLjUyMzc2MzMwNTMyMDI1NjEKCih2YWx1 ZXMgKGFwcGx5IGF2ZyAldXNlcikgKGFwcGx5IHN0ZGRldiAldXNlcikpCiQzID0gMTUuMzEyMjUK JDQgPSAwLjMyMjgzNjU1OTk1NjM0MTUzCgoodmFsdWVzIChhcHBseSBhdmcgJXN5cykgKGFwcGx5 IHN0ZGRldiAlc3lzKSkKJDUgPSAwLjczMgokNiA9IDAuMDgxNDgwNzQwNzM3MzczNjkKCndoaWxl IHRydWU7IGRvIHRpbWUgR1VJWF9QUk9GSUxJTkc9Z2MgLi90aGUtb3B0aW1pc2VkLWJhc2VOLWd1 aXgvYmluL2d1aXggYnVpbGQgLWQgcGlneCAtLW5vLWdyYWZ0czsgZG9uZQoKL2dudS9zdG9yZS9q ZmpmZzdkbmlzN3Y2OTQ3YTBybmN4ZG4zeTFuejBhZC1waWd4LTAuMC4zLmRydgpHYXJiYWdlIGNv bGxlY3Rpb24gc3RhdGlzdGljczoKICBoZWFwIHNpemU6ICAgICAgICA5My44NSBNaUIKICBhbGxv Y2F0ZWQ6ICAgICAgICAzMTcuODMgTWlCCiAgR0MgdGltZXM6ICAgICAgICAgMTgKICB0aW1lIHNw ZW50IGluIEdDOiAzLjcxIHNlY29uZHMgKDIyJSBvZiB1c2VyIHRpbWUpCgpyZWFsCTBtMTcsNjQ2 cwp1c2VyCTBtMTYsNTM5cwpzeXMJMG0wLDcwNXMKL2dudS9zdG9yZS9qZmpmZzdkbmlzN3Y2OTQ3 YTBybmN4ZG4zeTFuejBhZC1waWd4LTAuMC4zLmRydgpHYXJiYWdlIGNvbGxlY3Rpb24gc3RhdGlz dGljczoKICBoZWFwIHNpemU6ICAgICAgICA5My44NSBNaUIKICBhbGxvY2F0ZWQ6ICAgICAgICAz MTcuODMgTWlCCiAgR0MgdGltZXM6ICAgICAgICAgMTgKICB0aW1lIHNwZW50IGluIEdDOiAzLjYz IHNlY29uZHMgKDIyJSBvZiB1c2VyIHRpbWUpCgpyZWFsCTBtMTgsNzMzcwp1c2VyCTBtMTYsNjk4 cwpzeXMJMG0wLDY5MXMKL2dudS9zdG9yZS9qZmpmZzdkbmlzN3Y2OTQ3YTBybmN4ZG4zeTFuejBh ZC1waWd4LTAuMC4zLmRydgpHYXJiYWdlIGNvbGxlY3Rpb24gc3RhdGlzdGljczoKICBoZWFwIHNp emU6ICAgICAgICA5My44NSBNaUIKICBhbGxvY2F0ZWQ6ICAgICAgICAzMTcuODIgTWlCCiAgR0Mg dGltZXM6ICAgICAgICAgMTgKICB0aW1lIHNwZW50IGluIEdDOiAzLjcyIHNlY29uZHMgKDI0JSBv ZiB1c2VyIHRpbWUpCgpyZWFsCTBtMTUsNDI5cwp1c2VyCTBtMTUsNDQ4cwpzeXMJMG0wLDY5NnMK L2dudS9zdG9yZS9qZmpmZzdkbmlzN3Y2OTQ3YTBybmN4ZG4zeTFuejBhZC1waWd4LTAuMC4zLmRy dgpHYXJiYWdlIGNvbGxlY3Rpb24gc3RhdGlzdGljczoKICBoZWFwIHNpemU6ICAgICAgICA5My44 NSBNaUIKICBhbGxvY2F0ZWQ6ICAgICAgICAzMTcuODIgTWlCCiAgR0MgdGltZXM6ICAgICAgICAg MTgKICB0aW1lIHNwZW50IGluIEdDOiAzLjcwIHNlY29uZHMgKDI0JSBvZiB1c2VyIHRpbWUpCgpy ZWFsCTBtMTUsMjkycwp1c2VyCTBtMTUsMzE1cwpzeXMJMG0wLDYzNXMKCihkZWZpbmUgJXRpbWUv Z2MgJygzLjcxIDMuNjMgMy43MiAzLjcwKSkKKGRlZmluZSAldGltZS9yZWFsICcoMTcuNjQ2IDE4 LjczMyAxNS40MjkgMTUuMjkyKSkKKGRlZmluZSAldGltZS91c2VyICcoMTYuNTM5IDE2LjY5OCAx NS40NDggMTUuMzE1KSkKKGRlZmluZSAldGltZS9zeXMgJygwLjcwNSAwLjY5MSAwLjY5NiAwLjYz NSkpCgoodmFsdWVzIChhcHBseSBhdmcgJXRpbWUvZ2MpIChhcHBseSBzdGRkZXYgJXRpbWUvZ2Mp KQokMTcgPSAzLjY5MDAwMDAwMDAwMDAwMDQKJDE4ID0gMC4wNDcxNDA0NTIwNzkxMDMyOQoodmFs dWVzIChhcHBseSBhdmcgJXRpbWUvcmVhbCkgKGFwcGx5IHN0ZGRldiAldGltZS9yZWFsKSkKJDE5 ID0gMTYuNzc1MDAwMDAwMDAwMDAyCiQyMCA9IDEuOTU1NDM4MDAxNTE3MjUwNgoodmFsdWVzIChh cHBseSBhdmcgJXRpbWUvdXNlcikgKGFwcGx5IHN0ZGRldiAldGltZS91c2VyKSkKJDIxID0gMTYu MAokMjIgPSAwLjgzMDQzNjAzMDA0Njg2NzEKKHZhbHVlcyAoYXBwbHkgYXZnICV0aW1lL3N5cykg KGFwcGx5IHN0ZGRldiAldGltZS9zeXMpKQokMjMgPSAwLjY4MTc0OTk5OTk5OTk5OTkKJDI0ID0g MC4wMzY2MDQ0OTI3NDE4NjAwNwoKClRlc3RzIHNob3cgbmVpdGhlciBhIGRlY3JlYXNlIG5vciBh biBpbmNyZWFzZSBpbiB0aW1pbmdzLgpOb3cgbG9va2luZyBhdCB0aGUgYWxsb2NhdGlvbiBjb3Vu dDoKClRoZSBoZWFwIHNpemUgYmVmb3JlOgogIGhlYXAgc2l6ZTogICAgICAgIDkzLjg1IE1pQgog IGFsbG9jYXRlZDogICAgICAgIDMyNS4yMCBNaUIKClRoZSBoZWFwIHNpemUgYWZ0ZXI6CiAgaGVh cCBzaXplOiAgICAgICAgOTMuODUgTWlCCiAgYWxsb2NhdGVkOiAgICAgICAgMzE3LjgyIE1pQgoK QSBzbWFsbCBpbXByb3ZlbWVudCAoLTIuMyUpLg== --=-Gw1QlRQZ6lezhoMpQtOV-- --=-c8JIs8y52Y+SRXZX2cwe Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYTeGhBccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7jqOAQCFvc3OjfQejFi5OvpJoFjHjH4N ScQNeScR3iQ/XsH59wD7B8DvTWWad46Djmwup/0X6LBEiCylqdqu4cIrBXrDuAE= =KwMr -----END PGP SIGNATURE----- --=-c8JIs8y52Y+SRXZX2cwe--