Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:92087 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 25132 invoked from network); 5 Apr 2016 07:59:14 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 5 Apr 2016 07:59:14 -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 157.56.110.106 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 157.56.110.106 mail-bn1bn0106.outbound.protection.outlook.com Received: from [157.56.110.106] ([157.56.110.106:39107] helo=na01-bn1-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id B0/20-22740-E4073075 for ; Tue, 05 Apr 2016 03:59:12 -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=dUWYhmwGsl+lpIRRw+tXXZnWjW4UJpmRMs1dPDC6wY4=; b=Xcj4E064p7mvywzDHLAj2mGO+Vsgf9q9Do/0SYHfjGkw7tp0WusnJ48x3FpSN8u7K0EslU6N2h6k6gwRA5u/Vdrtvl9zVEBuY3fyfa4GvgAgQSgjkIr27rVnSZbK27w3An9a4Ik2znAfEcEFAEC7QluWXFi/HAYgq0nBbo+BEo8= Received: from BY2PR0201MB1784.namprd02.prod.outlook.com (10.163.72.26) by BY2PR0201MB1590.namprd02.prod.outlook.com (10.163.154.140) with Microsoft SMTP Server (TLS) id 15.1.447.15; Tue, 5 Apr 2016 07:59:06 +0000 Received: from BY2PR0201MB1784.namprd02.prod.outlook.com ([10.163.72.26]) by BY2PR0201MB1784.namprd02.prod.outlook.com ([10.163.72.26]) with mapi id 15.01.0447.028; Tue, 5 Apr 2016 07:59:07 +0000 To: Nikita Popov , Bob Weinand , Xinchen Hui , Eran Ifrah CC: internals Thread-Topic: RETURN micro optimization Thread-Index: AQHRjxAJZ7xQxaQ7LkS5uBZCq1LJAQ== Date: Tue, 5 Apr 2016 07:59:06 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: lists.php.net; dkim=none (message not signed) header.d=none;lists.php.net; dmarc=none action=none header.from=zend.com; x-originating-ip: [132.245.81.165] x-ms-office365-filtering-correlation-id: 5f75dd9a-8cc6-4271-625b-08d35d2829c8 x-microsoft-exchange-diagnostics: 1;BY2PR0201MB1590;5:nvk2561ckGWapxHP0wWZrb/eQYPQIkO44+wz5ns1Lddy9RkFeijr2Evk39+tEzTa/paOrMCzxIycHPRZmAIk7BtcvVyhVJO9ozDP5bz4CdnF5luf0vzwmi6w7VwvSwukyxiylQjZRw5aoIbM82ur5w==;24:OrS0IUzTvYEQ9MQi/In4zhqp+94rx56Oi/7lKD+ba5VGXSP29mUMCGfr9m37ZRaDlwNJB9ZsxP01hNF8fTaJnYk+/dZjGMOJlOgSMfRH65I= x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB1590; 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)(3002001)(10201501046);SRVR:BY2PR0201MB1590;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB1590; x-forefront-prvs: 0903DD1D85 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(19617315012)(106116001)(19580395003)(16236675004)(76576001)(4001450100002)(2900100001)(15975445007)(4326007)(66066001)(3660700001)(3280700002)(5008740100001)(5002640100001)(87936001)(99286002)(10400500002)(3480700003)(2906002)(6116002)(102836003)(3846002)(586003)(5001770100001)(5004730100002)(74316001)(229853001)(1096002)(1220700001)(189998001)(19627405001)(81166005)(122556002)(54356999)(92566002)(77096005)(19625215002)(5003600100002)(50986999)(33656002)(86362001);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR0201MB1590;H:BY2PR0201MB1784.namprd02.prod.outlook.com;FPR:;SPF:None;MLV:sfv;LANG:en; spamdiagnosticoutput: 1:23 spamdiagnosticmetadata: NSPM Content-Type: multipart/alternative; boundary="_000_BY2PR0201MB17844E0670EB83DA21F3D8BBBF9E0BY2PR0201MB1784_" MIME-Version: 1.0 X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Apr 2016 07:59:06.4663 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 32210298-c08b-4829-8097-6b12c025a892 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0201MB1590 Subject: RETURN micro optimization From: dmitry@zend.com (Dmitry Stogov) --_000_BY2PR0201MB17844E0670EB83DA21F3D8BBBF9E0BY2PR0201MB1784_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi, I propose a micro optimization for RETURN statement. Currently "return $x" increments reference counter of $x, then in zend_leav= e_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 Wordp= ress). 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. Let me know, if you see any problems (I'll delay commit for 2-3 days). Thanks. Dmitry. --_000_BY2PR0201MB17844E0670EB83DA21F3D8BBBF9E0BY2PR0201MB1784_--