Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:116080 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 37643 invoked from network); 17 Sep 2021 23:20:50 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 17 Sep 2021 23:20:50 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id EF2961804F2 for ; Fri, 17 Sep 2021 17:00:54 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_HOTMAIL_RCVD2, FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS8075 40.80.0.0/12 X-Spam-Virus: No X-Envelope-From: Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12olkn2104.outbound.protection.outlook.com [40.92.23.104]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Fri, 17 Sep 2021 17:00:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F15IDWMGXkVTI8+g+LZ11oNMIl7Pqr+UDV9KbsZzAePZYYY445MRJvNgxMsd3fA9+VWG4qJc6ec8lpRw8qXwe794pLZgxMre/FRNL4XUAvhGrtnFEwncdr/x0/OUSwhJ/7tyVdlflf8qulxBPUWJXqT7FhDCbGYabA6FUsc44b+RPODYz6j9DXFBUjksnUwREhqwwgxDaS6m3f4H/LxBt5nc/axbJu0XoiAXqB+iwdlIeNhxABLA1D6vBAd71D3fr+xpn5KHamV19FKiajzNGZz+4RTEYMQrD0RLrnsb1MsIFxTMFdIUekAW6HxABBx9ExP5jZ+rPPkRnzBHOukqPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=4Xynzd+yNuv84ZobubHWG8+cmcvSWgLZbh1IY/jAORQ=; b=fx638Dui9OgDAudu0ZhyVWvNEWGza3V583nAsGbYcpmbHk+JHOo/IAi5PqW5CBe1K7hapVCctHuyZnbGA9hwUPqc6bktzJXjG28l4Hn7qhUsDEWFqbaSwoS4mgvabsPgk4z8mKwLXIXNGrTAAwveYUxBgn2U5x2j34Atj8nrUYAb4DRee5KOqdozgcv56wxdojL+wLFj4hbo6soCvMsmsR+wunhjX+VxSKmr9pHpz8STd2fFZRuujCLJ7WiGbbVOCyONCefx9+7gsQlKBGH9924K32f0gdUuh6gPrURmyhWErLEzbPoLr3G9Tdfa6W7uUbF1c/v5z6TYdmbkclbCdA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4Xynzd+yNuv84ZobubHWG8+cmcvSWgLZbh1IY/jAORQ=; b=G/mvfPsQ9GejSgFHZIvm1Cd5FmbnZsoM7zF/hfcARmqRyOiL2vgO7S9xZ/9PO7+wVqr2nOIPr3UP+iIZEqity5xK6KSIFwXc2EnfYGuEyhzRj9cnLf/Ots0iOgzVrOz4jECDS9/S91Y5IRYLEIRFRgdVoTpgO/PXt+LO2WUGHdf7pqFW/aIIIldY+szAO7Sp1JnpkOfzTlWKdCEDTPZkgr2MSkE2BPt+fAbFSd11qPzvE2FLQ+45Oz+Wq5ynqpwhEFsveDYYZLe5R/U9Phx0nYhpU3Dcuo37npBF5/oWxVw9evyQ4q/KZXw29EywdxPpNEAe22n5Ga6vqKegFbkQkw== Received: from DM6PR07MB6618.namprd07.prod.outlook.com (2603:10b6:5:1cf::26) by DM5PR07MB2953.namprd07.prod.outlook.com (2603:10b6:3:8::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.14; Sat, 18 Sep 2021 00:00:45 +0000 Received: from DM6PR07MB6618.namprd07.prod.outlook.com ([fe80::7181:60db:c4d2:835]) by DM6PR07MB6618.namprd07.prod.outlook.com ([fe80::7181:60db:c4d2:835%7]) with mapi id 15.20.4523.017; Sat, 18 Sep 2021 00:00:45 +0000 To: "internals@lists.php.net" Thread-Topic: [PHP-DEV] RFC: Add `final class Vector` to PHP Thread-Index: AQHXq2Dr5ROExEhu802SAlX6zd1M+6uooACAgABFmN4= Date: Sat, 18 Sep 2021 00:00:45 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-CA, en-US Content-Language: en-CA X-MS-Has-Attach: X-MS-TNEF-Correlator: suggested_attachment_session_id: fe3e7587-e5f6-9e91-e4b7-55a0da44fc40 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [p88Jp609UxgOFYDWnhyIo2qM3BkJgHmbg1lZ90/DxONHNbHcTyVx4AAbghWu/62UyxLgkE6jpB4=] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9067b49a-c2a1-4027-e149-08d97a375d7a x-ms-traffictypediagnostic: DM5PR07MB2953: x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: o5IpLuG7ikgmKV4tEiQKx1PQjZrj2YKg1OCUTSK3tNlTNAq7Zi2HHTGCr7BWquM9WrUL5PkBDolR8BFBGCKjGh5EwlIHKT0mbhQSqLuYViFK3t8ZFKE5D7/LYgQJOW5rOPv07yppKpj9BW6llQVdA6Nx41s4KO9m95B2TMTE4FLVnAmEP7rZxwr3/6sZtcqfYysdCUhCpngILSGbOI9icOIDwR3QTZBmYZZ9DsS/iwuqgQLt2769rLooAQX/S3oK70KqKxEfE+BHTFQPtYB8hD/L1CMFs3jWotFmj0dvHlTUG21pbxPo4CTHPF6AkHiOvYN5tk8/3z68ASZ3CeL4NwvL4mkxTTl/I15Un/t68fIUSLEtOMYZMA8wQzWyC9xVXLFPMQoQjOQoezHe/h3E1hKm+otfKha6L9EnfZIM2xECU4iFn6NmLXUf8iFdM6b9+sy7j8Ngbx85i0du2nmhPYabdvAhFyeF2zen5G7PxiY= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: VUtW4UgQCYsE+Gzj6oltR2W1Ka0tDsdu2Agdp7K98K12Ja5UWf4Ifv2T2hKX/wRFPTM0+Fpd4ChCb2OGVIs525Rg+KdaOEcvlmQTvadLcuuEMsMdTqcMg5or+upquPFfie6vLWZ4IyDRKdBUIbyQ1eXFqX5zrugR4dBeG85/BpsfwnkWnglVpV31dN91Zve1wzwmbPqRgHoEX4mvXjkp/g== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-3174-20-msonline-outlook-35401.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR07MB6618.namprd07.prod.outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 9067b49a-c2a1-4027-e149-08d97a375d7a X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Sep 2021 00:00:45.8730 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR07MB2953 Subject: Re: [PHP-DEV] RFC: Add `final class Vector` to PHP From: tysonandre775@hotmail.com (tyson andre) Hi Max Semenik,=0A= =0A= > Since Ds was mentioned, I've added it to your benchmark (code and complet= e results at https://gist.github.com/MaxSem/d0ea0755d6deabaf88c9ef26039b2f2= 7):=0A= > =0A= > Appending to array: =A0 =A0 =A0 =A0 n=3D 1048576 iterations=3D =A0 =A0 = =A020 memory=3D33558608 bytes, create+destroy time=3D0.369 read time =3D 0.= 210 result=3D10995105792000=0A= > Appending to Vector: =A0 =A0 =A0 =A0n=3D 1048576 iterations=3D =A0 =A0 = =A020 memory=3D16777304 bytes, create+destroy time=3D0.270 read time =3D 0.= 270 result=3D10995105792000=0A= > Appending to SplStack: =A0 =A0 =A0n=3D 1048576 iterations=3D =A0 =A0 =A02= 0 memory=3D33554584 bytes, create+destroy time=3D0.893 read time =3D 0.397 = result=3D10995105792000=0A= > Appending to SplFixedArray: n=3D 1048576 iterations=3D =A0 =A0 =A020 memo= ry=3D16777304 bytes, create+destroy time=3D2.475 read time =3D 0.340 result= =3D10995105792000=0A= > Appending to Ds\Vector: =A0 =A0 n=3D 1048576 iterations=3D =A0 =A0 =A020 = memory=3D24129632 bytes, create+destroy time=3D0.389 read time =3D 0.305 re= sult=3D10995105792000=0A= > =0A= > Another comparison with Ds, I wonder if an interface akin to Ds\Sequence[= 1] could be added, to have something in common with other future containers= .=0A= =0A= It's worth noting that the first 4 data structures all start with initial s= izes that are powers of 2 and continue doubling (and not mattering for SplS= tack, a doubly linked list),=0A= but according to Ds\Vector's documentation,=0A= it starts with a minimum size of 10. So it's an unfair comparison. http://d= ocs.php.net/manual/en/class.ds-vector.php#ds-vector.constants.min-capacity= =0A= So there are probably larger copies done in Ds\Vector - Ds\Vector might do = better for other sizes or use less memory under other circumstances.=0A= =0A= (for reasons mentioned in https://externals.io/message/116048#116054 , I ha= ven't checked the resizing strategy used by Ds\Vector - doubling is a commo= n choice in vector implementations in other languages, others use other mul= tiples of old capacity, etc)=0A= =0A= Regards,=0A= - Tyson=