Re: [RFC][Vote] Typed Properties
| From: | Dmitry Stogov | Date: | Mon, 23 May 2016 09:02:16 +0000 |
| Subject: | Re: [RFC][Vote] Typed Properties | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-93437@lists.php.net to get a copy of this message | ||
I appreciate the work done by Joe, but I vote "no", because the implementation is not good
enough yet
- it's incompatible with opcache (may be it's not a big problem to fix this)
- typed properties assignment is going to be 2-3 times slower ($obj->x += 2; is 3 times slower)
- the patch makes slight negative effect even for untyped properties
- the proposed behavior for uninitialized typed properties assumes that they have to be checked on
each "read". This checks will have to be performed even in native JITed code. I don't
see a reason for typing if we have to perform check on each read anyway.
Thanks. Dmitry.
________________________________________
From: Dmitry Stogov <dmitry@zend.com>
Sent: Monday, May 23, 2016 11:30:09 AM
To: Joe Watkins; PHP internals; Phil Sturgeon
Subject: Re: [PHP-DEV] [RFC][Vote] Typed Properties
Hi Joe,
The performance effect of this implementation is terrible.
Assignment to typed property is 2.3 times slower.
Assignment to untyped property in a class with typed properties is 1.8 times slower.
See the benchmark
https://gist.github.com/dstogov/1b678712adeee51665cdd829195bb800
Thanks. Dmitry.
________________________________________
From: Joe Watkins <pthreads@pthreads.org>
Sent: Friday, May 20, 2016 9:05:34 AM
To: PHP internals; Phil Sturgeon
Subject: [PHP-DEV] [RFC][Vote] Typed Properties
Morning internals,
Since we have our answer on nullable types, typed properties can now go
to vote.
https://wiki.php.net/rfc/typed-properties#vote
Note that, support for nullability as RFC'd will be merged when the
implementation for nullable_types is merged into master.
Please participate.
Cheers
Joe
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php