Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:92100 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 54520 invoked from network); 5 Apr 2016 12:14:32 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 5 Apr 2016 12:14:32 -0000 Authentication-Results: pb1.pair.com smtp.mail=dmitry@zend.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=dmitry@zend.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 65.55.169.110 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 65.55.169.110 mail-bl2on0110.outbound.protection.outlook.com Received: from [65.55.169.110] ([65.55.169.110:46914] helo=na01-bl2-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id B5/15-27948-62CA3075 for ; Tue, 05 Apr 2016 08:14:31 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=RWSoftware.onmicrosoft.com; s=selector1-zend-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=KCFRu0eN7OWziBhjPN7F0gSqFqef3hhFG2XtRpHRm+c=; b=gTe4ZRJkpA6kaRiVB8PBmQl+J7waIWik9vyNdOSkhyOuHuTmuy7vfQP7aMfHuG9mOHE/eOMAXr39kEl8ep1IcrErhubDjqtSiyHPH3/0Iv14KE11MP+AhfZdWxnm+DFfYbKHJBroEwEzcU8ctZ2FnrtSrVzZFPBvA2wEBxnLHY0= Authentication-Results: lists.php.net; dkim=none (message not signed) header.d=none;lists.php.net; dmarc=none action=none header.from=zend.com; Received: from tpl2.home (92.62.57.172) by BY2PR0201MB1782.namprd02.prod.outlook.com (10.163.72.24) with Microsoft SMTP Server (TLS) id 15.1.447.15; Tue, 5 Apr 2016 12:14:24 +0000 To: Derick Rethans References: CC: Nikita Popov , Bob Weinand , Xinchen Hui , Eran Ifrah , internals Message-ID: <5703AC10.9030906@zend.com> Date: Tue, 5 Apr 2016 15:14:08 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [92.62.57.172] X-ClientProxiedBy: HE1PR03CA0029.eurprd03.prod.outlook.com (10.163.170.167) To BY2PR0201MB1782.namprd02.prod.outlook.com (10.163.72.24) X-MS-Office365-Filtering-Correlation-Id: 9aacd4e1-2578-432b-0306-08d35d4bd54f X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB1782;2:SS+ANwMaG5ZzSv5ZAlZfqwS8iGjYxqciXTcQChNUZrdrDWmyn+MNsa6ASHnp7OJSU2vr5rAiCYEADF7xeFeOSDM84m6ZVJDGxrjzCYdPLHMPQlke29Sb8moVfG38oEWk3GGtNlWoUkZ7HxCLlfJakKdZwIg8JClf8wetMKMh5+y0SKuBXpXreOCb/EZY5lFY;3:pLJ3lF9dXuQ8JLO85C6qTwlYB42BuCOIArzxWUB8lcUucDyGoMLs323ICjQbpjuc6ViWz8lb8iELtmsGvnxj2Bw3lcUXWnYvW8dv30D9e/vexAr454C+4tDKPYEvQvW0;25:x83f4jquO1tl1Ae/T1kpnzjwSgjluNB9hcqBQ6CDAqe3z456nKuRsXr3diuup//8A3424ZAOraqRDk2t5SuEI4/3uJMp/Odf6hWzU0T+PAtlCCpRqjo4UpTB76RsjljJRZG2KXOFCBACl/t+mK7aR3586doVsFmkrwqagx/lGBgX4dsH0siyfxPCsEuNAEs0fQWbYEZ1XxEINH24YftGyNyZsdEXpK3OFtjEooAkjiyS5Mmz/7958UXuFEiOjF/HQ8Xe6XmAC4xN37u8btPAa/KgTUnKriDwrx4gJ0R7t2iYADrYHT3+qcBaDJjcG7NS/x4Lpr56UGYwqoba3x3f2bZA3ypW9MT8wdHWHRCHP4Y= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB1782; X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB1782;20:Lgs2fCkpgYyifU1YiVRCTkNKGy24m3bAazLmd7HjVjrloKHwuZ7fbhqv2lMGmgWRjWL7yd9rc+7WHzXlPGh1YCxNcID1272zlAGhrg+AWwmmsqIPP3Tw8fxAMjhosQoNL7Onk+jfT13JKGfY6tEl4KXDVOM51/NMDC4C8YThDybxrCrXvGnSk3aLnfAg+LS1WaeVTOoNCp/vmCMMTHFwBM+/AVVe0ancOFHi5Bwcqn5kUx17VeHUxI2LL7YeQCNcsTvuDpeGmwgWMjQdK+szNVV4OzvS11dsDI7oKT+k80XvKHykuRXqfFNISoALy9afNM+qmKz5XYTYEwpQeu5MMfQSx9r3NBTQ01eUdxNyo0fWHeC1r82YwJoiPCxpxpzeSC4AnBouHAEa/DEdDIsAEXcavc4cDvMNvRFGEQvY07/3QN7YjeX89HKC9YaWJBSaiPc4PQ+1ubD60hi2SZDZD3gYUnZAwCZ9hrG9sBHysBMJGp+sWnIdY94+kjP97Si9;4:c0tQNY7kcmWwT0Xos3/dm71xNVcEBOym7lOoFv1Sl45+r07aYpMU+UxAsr/iE/MVpOoLiNL9KrpYIRENx59tKnIUl+NgSFGykNAMMlD67IXdf/D+0vhGo1vVDECjdKFY11wItkUV8fo4wvEvGDMahUuCD5Y2SjKP5MocMN4PZ0UkEEPsKY/vI8lop0monuaLGtuqybTUcOkXG/sqckkNv/XouwsLmwXbMeXkoxrlvjEIin2Zbks07fcHebEOcXpPl13N9DtMOop5id6qeEo05n4wzh/RHOdQuSJGJoFBmcM8L6nZOBiSdN00WOlvfPo0bH8t3ww3mh1MdRjttTERj5O6PR59ioz90MCVZeW5+IK4fBgfIXutLhBSwRKyWPFK X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001);SRVR:BY2PR0201MB1782;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB1782; X-Forefront-PRVS: 0903DD1D85 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(24454002)(377454003)(50466002)(81166005)(86362001)(4326007)(586003)(5004730100002)(15975445007)(5008740100001)(189998001)(36756003)(2906002)(77096005)(2950100001)(110136002)(33656002)(47776003)(66066001)(19580395003)(65806001)(64126003)(80316001)(6116002)(230700001)(3846002)(92566002)(65816999)(1096002)(87266999)(50986999)(76176999)(54356999)(42186005);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR0201MB1782;H:tpl2.home;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;BY2PR0201MB1782;23:KCOSVRYIkaZwvhCWtnTx+npAeFKh4qYSUG4?= =?Windows-1252?Q?XaoE1wA9dBCgLfI0QGb587GWrpO6Kgve/dR/vsEFkad6br6f2VYvuE0l?= =?Windows-1252?Q?RzZco0CPQ/ftLg0lu+Z3PiwMgDtiwPZrSjMqRDLizn08Z5kQ+qMKDy3I?= =?Windows-1252?Q?ikUMRWFysf5AtMwpsYDSULBcxqyL9x7uWRrUWBFFUUCMmfJnmAfzgW8e?= =?Windows-1252?Q?Ut6EZDPoYy0SzVH6d37i/XD8wlcxp53vj/Ezm6pS5w/FWTt0nhkaPTJa?= =?Windows-1252?Q?NGz9+DwbRZdimrcW4x8beGtcP1OfqaTmP/6Hu5G3zIoNnwCKabkORExh?= =?Windows-1252?Q?RJBpYHI7AsMDP6he1rmq8486Iw6nrpXbZ9d8hTkZKlkGxjyDLKRtRTld?= =?Windows-1252?Q?6vF/YhQzNd/GpGI6hAu3O4X3lNjgKe/RuVN3OWJ0KsaJ4JYHjOjASeab?= =?Windows-1252?Q?dNMb0VjRpjIOWUzQiVnqU2CAwblo6QEAnbA4b5gyjSVsD0YatSmOAaJv?= =?Windows-1252?Q?xyy5MV8HPaHTNEBlGvr2i83lzUBly9O+ZXGA2xc8kfRtRfDhGH1SyZzj?= =?Windows-1252?Q?wIokMwROCkpqrDIJRVboUqfmvTj9zZyZy6egxmFcl4eFCUynhjH1skib?= =?Windows-1252?Q?/rVygLhmaG16HZ8PKusFOHN2iZtBoWOOy/bwYIQJ+wMsVF3uKQP/gwE1?= =?Windows-1252?Q?DCfwAC/yYeNJw9PYkNgxOKiodIt7NWWAH/MF5CLfklfH4OI93b5KMPeu?= =?Windows-1252?Q?X5Q6t5CGIhIHYHVVP4wBfhT/5vrQoyE4jR3ItpgKQsXzL6r2zdtnTKmR?= =?Windows-1252?Q?53AhF9O10ymh4GdmxX4H5HFyT++tn+6MKB2Rn8/9i2jmdxCJQjqJdqby?= =?Windows-1252?Q?397PG51Z0jPg6S1hEyz8+ZQ/u8HsF5Knayjq808IJXA9IjbcxemmGoi/?= =?Windows-1252?Q?D3j+tvP7rv3NwDzfvdxFw7McwsMhADld6pQLqd+V0+1R0U+HRuL0cLs5?= =?Windows-1252?Q?7Rb/oJLopkDf6vAynWFMJ8NUS7mYe/YXVlup+Serhxv/iFQkWQQ=3D?= =?Windows-1252?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB1782;5:/y8nbFII9AiVgvftyt+o/xBvJzk0NdF7V9zoRz6KnLWn8dpD0TTX+QkCfpJ8aW3c/L5tDz1ElSMBVnvk/hr/i1zjkphfE8D3iVYL286ab3fLJQCQEuT7ay2afzrWhwBsByUleRjVRjgbvSAgVwFukQ==;24:RHLKFLWb4p9mvHK3nJGJdnYmYs+D9x0CN+GkxPYMBh9qLTWgmilP8zHUYJgto64p44J8/3vT8IWS0LYM06rXDmKc0eHOznncb6AnsVVynpE= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Apr 2016 12:14:24.1244 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0201MB1782 Subject: Re: [PHP-DEV] RETURN micro optimization From: dmitry@zend.com (Dmitry Stogov) On 04/05/2016 12:04 PM, Derick Rethans wrote: > On Tue, 5 Apr 2016, Dmitry Stogov wrote: > >> I propose a micro optimization for RETURN statement. >> >> Currently "return $x" increments reference counter of $x, then in >> zend_leave_helper() we perform zval_ptr_dtor() on the same $x. >> >> The patch sets the original value of $x to null in first place, so >> zval_ptr_dtor() is not going to be called. >> >> https://gist.github.com/dstogov/36f68b206242a39691ac539c2fc85d40 >> >> the performance impact is invisible (0.1% less instruction retired on >> Wordpress). >> >> It breaks sapi/phpdbg/tests/breakpoints_005.phpt, but this is probably >> not a big deal. >> >> BTW: this change may affect debuggers in some other way. > I'd like to know why this breaks before saying something. It'd be a PITA > if this micro optimisation wouldn't actually do a lot performance wise, > but makes some debugging not possible. Actually, the patch has a bug. It doesn't take into account that "return $x;" might be used in global scope. Setting $x to NULL in this case isn't right, of course. Introducing another check would probably negate the effect of micro-optimization. So, ignore this for now, and sorry for noise. Thanks. Dmitry. > > cheers, > Derick