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

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to