Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:92107 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 48852 invoked from network); 7 Apr 2016 11:47:15 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 7 Apr 2016 11:47:15 -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.142 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 157.56.110.142 mail-bn1on0142.outbound.protection.outlook.com Received: from [157.56.110.142] ([157.56.110.142:39539] helo=na01-bn1-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id A1/00-48788-0C846075 for ; Thu, 07 Apr 2016 07:47:14 -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=oCjZDjruKTy7elPv3YXmZNalJnXZnE6wN3grVZFOHUo=; b=FIJk+lqA7NPjUa+ou6l6v5r3Wwjzy0TnJi0htGdoXsUD01bCw8Tsn3Eo9/QGYOOkI/hCLP9F95aFobSXwLxuUp1ua+TeWkPRU2T/EO8qBkAIQ3sozGD7RGITDgX0SXW1F0U5/tUU6CZRNc3X5RjnhOpYm0gvAaEoX8Dx28NGeH8= Received: from BY2PR0201MB1784.namprd02.prod.outlook.com (10.163.72.26) by BY2PR0201MB1783.namprd02.prod.outlook.com (10.163.72.25) with Microsoft SMTP Server (TLS) id 15.1.447.15; Wed, 6 Apr 2016 07:39: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; Wed, 6 Apr 2016 07:39:06 +0000 To: Lin Yo-An CC: Xinchen Hui , Nikita Popov , Bob Weinand , Joe Watkins , internals Thread-Topic: Object getter method optimization Thread-Index: AQHRj0gHiX8X0BnQ5U+SlXD9k2g53598jrHY Date: Wed, 6 Apr 2016 07:39:06 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: php.net; dkim=none (message not signed) header.d=none;php.net; dmarc=none action=none header.from=zend.com; x-originating-ip: [132.245.81.165] x-ms-office365-filtering-correlation-id: 2bdde0e9-1e47-4f01-18f1-08d35dee8878 x-microsoft-exchange-diagnostics: 1;BY2PR0201MB1783;5:lX/G8NsaVwN37a8WEP452kAKF/hMGTx6sZEkdqHWGrFPJsCifIc1UdZH+zZF0FtW3m/wzf5rIwOqPTM50DP584DTI4Y4Zj1oe5CB1lBMhJhY65gpM6Y7EgljCMMvAYgIGadnySDQdDpo/4n0LpJUVg==;24:JGKzCWFoRngYfQzTI4AWfs5HOhS2N7N0w6GCIYQLq5g/aflaXbrx+IyWzGojAKnLAmD/F/bGBbcy0DUzkT9Z/nqMq4S5RC1EO+26x14TRMk= x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB1783; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001);SRVR:BY2PR0201MB1783;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB1783; x-forefront-prvs: 0904004ECB x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(24454002)(377454003)(19625215002)(1096002)(106116001)(11100500001)(5004730100002)(54356999)(87936001)(189998001)(110136002)(77096005)(5003600100002)(5008740100001)(19580405001)(5002640100001)(19580395003)(1220700001)(33656002)(16236675004)(66066001)(76176999)(50986999)(586003)(2950100001)(2900100001)(122556002)(2906002)(3900700001)(81166005)(3660700001)(3480700003)(10400500002)(76576001)(102836003)(92566002)(4326007)(6116002)(86362001)(3280700002)(19627405001)(3846002)(74316001)(99286002);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR0201MB1783;H:BY2PR0201MB1784.namprd02.prod.outlook.com;FPR:;SPF:None;MLV:sfv;LANG:en; spamdiagnosticoutput: 1:23 spamdiagnosticmetadata: NSPM Content-Type: multipart/alternative; boundary="_000_BY2PR0201MB17846D27AD2A265308DF83F5BF9F0BY2PR0201MB1784_" MIME-Version: 1.0 X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Apr 2016 07:39:06.2074 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 32210298-c08b-4829-8097-6b12c025a892 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0201MB1783 Subject: Re: Object getter method optimization From: dmitry@zend.com (Dmitry Stogov) --_000_BY2PR0201MB17846D27AD2A265308DF83F5BF9F0BY2PR0201MB1784_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable did you see my patch? It already uses run_time_cache of calling op_array to= get getter property offset. It's also possible to "allocate" slots in "run_time_cache" of caller op_arr= ay at compile_time, increasing op_array->cache_size. (see zend_compile.c), = but I don't see a big reason to do it. Thanks. Dmitry. ________________________________ From: Lin Yo-An Sent: Tuesday, April 5, 2016 17:32 To: Dmitry Stogov Cc: Xinchen Hui; Nikita Popov; Bob Weinand; Joe Watkins; internals Subject: Re: Object getter method optimization On Tue, Apr 5, 2016 at 10:14 PM, Dmitry Stogov > wrote: I think, op_array->type and op_array->fn_flags can't be reused. Also, usage of op_array->run_time_cache is safer (I remember, I saw some SI= GSEGV with your patch and opcache.protect_memory=3D1) Got it. Does run_time_cache vary when caller is different? maybe I can u= se the first 2 bytes for the accessor information. Cheers, Yo-An --_000_BY2PR0201MB17846D27AD2A265308DF83F5BF9F0BY2PR0201MB1784_--