Kolik má instalace Drupalu proměnných?

Při analyzování výkonu jednoho webu mě zajímalo, kolik má proměnných (tzn. obsah tabulky variables + globální pole $conf nastavené v settings.php) a kolik to je přibližně v bajtech.

Použil jsem k tomu modul Devel. Ten sice sám obsahuje „Variable editor“ (velký formulář, kde je možné proměnné přímo upravit). Člověk se tam ale jednoduše nedozví počet proměnných a navíc při pokusu o přístup na tuto stránku jsem dostával PHP memory limit error…

Rychlým řešením je otevřít si v Development bloku „Execute PHP Code“ (mazáci zadávají rovnou URL /devel/php ;-)) a zadat následující kód:

<?php
// Vytiskne počet proměnných
// POZN: lze taky použít obyčejnou drupal_set_message()
dvm(count($GLOBALS['conf']));

// Vytiskne velikost serializovaného paměti v B/KB
// POZN: lze taky použít obyčejnou drupal_set_message()
dvm(format_size(mb_strlen(serialize($GLOBALS['conf']), '8bit')));

// Vytiskne celé pole do rozbalovacího stromu přes knihovnu Krumo
dpm($GLOBALS['conf']);

// Alternativně lze použít
dvm($GLOBALS['conf']);
// nebo
dpr($GLOBALS['conf']);
// Např. pro copy-paste, nebo z důvodů úspory paměti/velikosti HTML
?>

Já „naměřil“ 8297 proměnných, velikost serializovaného pole proměnných byla 695.46 KB.

Kolik jste naměřili vy?

Poznámka: Původně vydáno na mém Drupal.cz blogu: http://www.drupal.cz/blog/wojtha/kolik-ma-instalace-drupalu-promennych

Používám opravdu hodně modulů

Používám opravdu hodně modulů (http://peace.jecool.net/bordel/moduly.png)
naměřil sem:
int(1122)
string(7) "87.7 KB"

je to dobře nebo špatně?Podle vašich hodnot nejspíš dobře. V tom případě by mě zajímalo, jakto, že jste naměřil tolik, případně kde byl problém

To je v pohodě :-)

Problém s tím webem, který jsem uváděl v blogpostu byl ten, že ten člověk zkoušel hodně modulů, ale vždy je jen vypnul, ale neodinstaloval.

Koukal jsem i na moduly, a těch modulů je sice dost, ale nezdálo se mi, že by jich bylo zbytečně moc. Velký web prostě implikuje hodně modulů.

Počet modulů je takový trochu strašák. Je potřeba s tím akorát umět zacházet. To strašení má zabránit nováčkům, aby propadli šílenství (jeee na Drupal.org je 6000+ modulů a všechny jsou zadara!) a do webu s blogem a kontaktním formulářem si nainstalovali naráz 200 modulů, protože měli cool jméno a možná se budou někdy hodit...

Drupal nemá problém uhostovat téměř cokoliv, lze ho dobře škálovat, ale od určité velikosti a požadovaného výkonu potřebuje podporu infrastruktury. Díky architektuře Drupalu nastává tento "bod" o dost dříve než u konkurenčních CMS z velké trojky (Drupal, Wordpress a Joomla). Nastavení takové infrastruktury vyžaduje zcela jinou úroveň znalostí než "umím používat FTP a naklikám vám v CCK a Views co si budete přát" a kromě toho to znamená také konec na sdíleném hostingu a vlastní server... popřípadě nějakou profesionální Drupal hostingovou službu - náklady o řád až dva někde jinde,

Proto ten důraz na šetření s moduly. Každý modul "si ukradne alespoň trochu výkonu" byť se nepoužívá. (To neplatí když je se servíruje komplet nakešovaná stránka - např. pro anonymního uživatele.

Na produkčním webu doporučuju vypnout všechny moduly, které nejsou nutné pro standardní běh Drupalu a používají se jen při ladění - např. Devel, Views UI, ImageCache UI, v Admin menu (http://drupal.org/project/admin_menu) je na to dokonce přímo shortcut - Enable/Disable developer modules.