Great work, I've been periodically reviewing the commits and you're
making excellent progress in terms of making the optimizer a general
use tool. One thing I would suggest is creation of a "known issues"
list, which can act as both a todo list and a warning list for people
intending to use the optimizer.
On 25-Jul-08, at 8:59 PM, Graham Kelly wrote:
Hi,
My Google Summer of Code project is to develop and release an initial
version on the optimizer originally being developed by Ilia. The
optimizer
will be released to PECL as its own extension, however, it will
require APC
in order to run.
Ive worked on cleaning up bugs and testing the existing code. In
addition I
have worked on refactoring some of the code to provide a base on
which to
build a more powerful and more robust optimizer. I have added a few
additional optimizations including:
1) Optimization of basic math identities
2) Optimization of silence blocks
3) More functions for which we can pre-calculate return values for
if they
have all static parameters. (substr, acos, acosh, asin, asinh, atan,
atanh,
cos, cosh, sin, sinh, tan, tanh, exp, log10, sqrt, atan2, ceil,
floor, fmod,
ini_get [for PHP_INI_SYSTEM values only], ip2long, long2ip, trim,
chop,
rtrim, ltrim, rad2deg, deg2rad, abs)
4) worked on making function optimization more aggressive to reduce
the
number of required passes for full optimization.
5) A few more minor things here and there
There are plans to change the optimizer hook in APC over to adding a
new
compile layer. This should help give the optimizer better control as
well as
make it more easily integrateable with other extensions.
In the future I would like to work on a new control system and new
analysis
tools for the optimizer. Hopefully such eventual changes will open
up the
way for more powerful optimizations down the road. In addition there
are
some APC specific optimizations that might be able to be done.
Hopefully the initial release of the optimizer will in available in
PECL in
the next few weeks. For now you can get it from pecl/optimizer in CVS.
~ Graham
Ilia Alshanetsky
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php