On Nov 30, 2007 2:17 PM, Mike Cantelon <m_cantelon@straight.com> wrote:
Khalid Baheyeldin wrote:
(Changing the subject)

I regularly see 80+ to 110+, and that causes Apache to eat 100MB per process, which is really not good ...

This is the open buffet binge syndrome detailed here:

http://2bits.com/articles/server-indigestion-the-drupal-contributed-modules-open-buffet-binge-syndrome.html
Great article... Has anyone figured out what parts of the module architecture are most expensive memory-wise so they can be examined?

Yes.

a) The include_once() part is the most expensive. That is common for all modules, and the more you have the more you suffer (but there are solutions).
b) Creating large associative arrays ( e.g. the way we handled URL aliases before 4.7).
c) Doing a lot of things over the network (e.g. subscriptions module and Google Sitemap module with certain settings. One emails people, the other pings Google).
d) Lack of an op-code cache/accelerator.
e) Excessive SQL queries, either number of queries or heavy ones. (Just saw a site with 11,400 queries per page. Ended up being badly written PHP code pasted in a block that loads on every page).

For a) I am writing an article with more details on the include_once part over the weekend (if not sooner).

For c) and d) there is an article or two on 2bits, one with the exact settings that causes slowness.
--
Khalid M. Baheyeldin
2bits.com
http://2bits.com
Drupal optimization, development, customization and consulting.