[drupal-devel] Wrap every function call in module_invoke
Karoly Negyesi
karoly at negyesi.net
Fri Apr 29 00:53:03 UTC 2005
Hi!
I put split.php into my sandbox (contributions/sandbox/chx/) which wraps
every module-defined function call for all modules in m(). It's a bit
rough, mkdir calls are missing, but for testing it's OK. Drop it into your
Drupal installation directory, create files/modules and let it go.
I have copied module_invoke and named it m() -- if someone needs, I can roll
a patch ;)
I have tried a little ab and I have measured about 3% percent of performance
loss:
Time per request: 5846.368 [ms] (mean)
Time per request: 1169.274 [ms] (mean, across all concurrent requests)
Time per request: 6033.208 [ms] (mean)
Time per request: 1206.642 [ms] (mean, across all concurrent requests)
However, I think it worths it. As some of you know, I am planning to
introduce a "split" mode so only those functions are loaded which are
called. This will surely cure memory limit problems. I do not yet know
about peformance -- we'll have a lot of small .inc files which needs to be
read instead of a few huges one, but the total amount of read is a lot
smaller and the parsing will be lot less. We shall see.
Second, if we want to, we can be _real_ modular after this: every function
can be "overwritten" this way if we define say
module_overwrites_originalfunctionname to be an overwrite of
originalfunctionname and get module_invoke to the overwrite.
If we think it does not worth it then it could be a contrib project after
all.
More information about the drupal-devel
mailing list