Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:80042 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 16970 invoked from network); 1 Jan 2015 12:47:00 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 1 Jan 2015 12:47:00 -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 209.85.220.171 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 209.85.220.171 mail-vc0-f171.google.com Received: from [209.85.220.171] ([209.85.220.171:37849] helo=mail-vc0-f171.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id DF/18-60454-3C145A45 for ; Thu, 01 Jan 2015 07:46:59 -0500 Received: by mail-vc0-f171.google.com with SMTP id hy4so6671690vcb.2 for ; Thu, 01 Jan 2015 04:46:56 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=V3osHidRPC9WQOMPw2M3gbi28F81uyUYi3G3qlWxcyA=; b=L9NEDOIYQN1qceV0kz0IJ7buyO7beFJYk5e4FPQM+Fa+LOHQxZsEQuxQ1AJWToXrIu zhr/sPVt7S2Rj6s27LXSwebCcO6cDi7TxCdtfUHKWPaCt2Qmm6adzYQcMDxvoovhFsvV OrtRjP2jk/JD52ZA2cUjag82dSXE6Ui7DYbBrjJBtodd4I/nxqhGH+os7fiJ/j0lvfHV GlPxXeVl2ewc26Ln5FZFLL7A1FusLPXBlU9cJJel9TSlVxxULMkFxrb3I037bp737C8H HKnXlxPbYSAJPPIFVuqMY9Rud30PW4J5uy/Q9s1E8wjnpP8j63zr+t6k0EunDXuT1zhg EYzw== X-Gm-Message-State: ALoCoQmZxUKtxzP5xGtBJgOcX+U5s+uc2HvQB7S4kg17blc8zNMfVqhcD4MFVPkSjSm5WA4MEEh2t9clEeOjP04eOCdiOFWy1aGkOOZ3Zbiixojz2wd+amK6WZPRtu6Gd/HMPdaTE3i6EjANwAvxknWUvl1OHAyqAw== MIME-Version: 1.0 X-Received: by 10.221.28.67 with SMTP id rt3mr33712488vcb.33.1420116416061; Thu, 01 Jan 2015 04:46:56 -0800 (PST) Received: by 10.52.26.40 with HTTP; Thu, 1 Jan 2015 04:46:55 -0800 (PST) Received: by 10.52.26.40 with HTTP; Thu, 1 Jan 2015 04:46:55 -0800 (PST) In-Reply-To: <002a01d02522$469637f0$d3c2a7d0$@tekwire.net> References: <002a01d02522$469637f0$d3c2a7d0$@tekwire.net> Date: Thu, 1 Jan 2015 16:46:55 +0400 Message-ID: To: francois@tekwire.net Cc: PHP Internals , Xinchen Hui , Nikita Popov Content-Type: multipart/alternative; boundary=001a11333a4c84fd76050b969e55 Subject: RE: [PHP-DEV] Merge HashTable and zend_array into a single data structure. From: dmitry@zend.com (Dmitry Stogov) --001a11333a4c84fd76050b969e55 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi Fran=C3=A7ois, this is not a proposal yet, this is just an initial request to the most experinced PHP developers to think about possible consequnces. Thanks. Dmitry. On Dec 31, 2014 9:50 PM, "Fran=C3=A7ois Laupretre" w= rote: > > De : Dmitry Stogov [mailto:dmitry@zend.com] > > > Please take a look into the patch > > > > https://github.com/php/php-src/pull/970/files > > > > This real changes are in zend_types.h, the rest is renaming that in mos= t > > cases makes code cleaner. > > > > zend_array didn't change its binary representation, but now it's not > > possible to get a pointer to embedded HashTable. The same zend_array > > shoukd > > be used instead. > > > > Each HashTable got an extra 64-bit zend_refcounted header. This leads t= o > > some increase in memory consumption. > > > > The performance is slightly increased (may be measured with callgrind). > > > > The patch beaks one test (tests/lang/foreachLoopObjects.006.phpt), but > > actually it just disclose a problem that we have anyway. > > > > The patch should be a base for the future optimizations. e.g. removing > > HashTable->arData and/or HashTable->arHash and allocating them together > > with zend_array; introducing EG(empty_array) etc. > > "Showing 46 changed files with 193 additions and 204 deletions". I am > sorry but I can't analyze the impacts of your change, just from the patch= . > Did you write an RFC that would explain the impact, especially for > extension writers ? > > More generally, what is the rule ? Is there a list of people who can > introduce changes in the code, and even BC breaks in the C API, without > writing RFCs, or is it just a question of rights/karma on the source > repository ? I say that because it is especially hard to have a proposed > change accepted on the mailing list, as several 'watchdogs' are there to > dismiss ideas coming from people they don't know. > > --001a11333a4c84fd76050b969e55--