Re: [RFC] Performance improvements
On Tue, 13 Apr 2010, Dmitry Stogov wrote:
> I've published all the patches, their description and performance evaluation
> at http://wiki.php.net/rfc/performanceimprovements
I've a few questions and comments:
http://wiki.php.net/rfc/performanceimprovements#zend_engine_vm_tuning
You're writing that the ZEND_CATCH opcode has to be used with a constant
class name, so how would "catch ( self $e )" be represented in op-codes
now?
Some patches seem to be changing tests; I think we should avoid that and
instead create a new test that only runs for the new version, and add a
qualifier to the old one (the one that you're now modifying) to *not*
run with the new PHP version.
2-empty_hash.diff.txt seems to be ignoring some of our coding
guidelines:
if(ht->nTableMask) pefree(ht->arBuckets, ht->persistent);
should clearly be:
if (ht->nTableMask) {
pefree(ht->arBuckets, ht->persistent);
}
Could you please check the space between "if" and "(", and always
using braces for all the patches?
3-literals.diff.txt makes the opcode arrays again a bit more complex to
disect. Perhaps you could add a bit of documentation describing how all
the things work together now? Like which index in whivh fields points to
which other structure etc?
4-interned.diff.txt
The change in array.c, is that strictly necessary, or just another
performance improvement?
Things like make me wonder, whether it would work to make this macro
part of efree() ? (or create an esfree() (string-free) instead?
- efree(Z_STRVAL_P(value));
+ if (!IS_INTERNED(Z_STRVAL_P(value))) {
+ efree(Z_STRVAL_P(value));
+ }
In the RFC you write "Note: The usage of special data structure (e.g.
zend_string) instead of char* throughout PHP would probably be a more
consistent solution, but it would be a huge break. We are going to look
into this solution in the future.". This would be an API break only,
right, very similar to what the Unicode patch did with zstr's?
with kind regards,
Derick
--
http://derickrethans.nl | http://xdebug.org
Like Xdebug? Consider a donation: http://xdebug.org/donate.php
twitter: @derickr and @xdebug
Thread (19 messages)