Čeština pro WordPress a nízký memory_limit

Pokud máte u svého poskytovatele hostingu problém s omezením PHP paměti (tzv. memory_limit, občas nastaven pouze na 32 MB) a třeba právě kvůli tomu máte vypnutou i češtinu pro WordPress, abyste trochu paměti ušetřili (samotná čeština zabírá odhadem 4 – 6 MB), tak i v tomto případě existuje jednoduché řešení.

WordPress totiž využívá jako výchozí možnost pro překlad gettext (a příslušnou PHP knihovnu), který je sice ideální pro překladatele (práce s .po soubory probíhá např. pomocí českého programu poedit), ale s rostoucí velikostí přeloženého souboru roste bohužel také paměťová náročnost na provoz WordPressu. Problém s pamětí obvykle poznáte když se začne objevovat na různých místech webu (zejména administrace) bílá obrazovka či chybová hláška “Fatal error: Allowed memory size of 12345 bytes exhausted…” (viz mnoho podobných dotazů na našem fóru) a konkrétní hodnotu pak ověříte např. pomocí funkce phpinfo() či využitím pluginu WP-Memory-Usage (ukazuje hodnoty maximální a aktuálně využité paměti).

Existuje ale jedno rychlé řešení tohoto problému – plugin Pure PHP Localization (nedávno aktualizován pro nejnovější verzi WordPressu), pomocí kterého je překlad (v podobě .mo souboru) načten do klasického PHP pole, se kterým pak WordPress dále pracuje a zobrazuje příslušné přeložené řetězce. Pokud tomu ale moc nerozumíte, tak to vůbec nevadí, vše funguje automaticky, nemusíte nic nastavovat či upravovat, pouze plugin nainstalujete a aktivujete (případně deaktivujete). A pak už jen můžete porovnávat. Plugin jsem poslední dobou vyzkoušel na několika drobných projektech a pokud využíváte memory_limit opravdu “na hraně”, tak je to asi ideální řešení. Pokud ho vyzkoušíte, tak se prosím podělte také o svoje dojmy.

Nejoblíbenější hosting pro WordPress WEDOS.cz

21 thoughts on “Čeština pro WordPress a nízký memory_limit”

  1. Díky za radu, Pure PHP Localization mi opravdu pomohl.

    Tak zaprvé jsem nevěděl, že mám na svém hostingu omezenou paměť. Zjištění zajímavé, ale za ty peníze, co u Klenot.cz platím, celkem pochopitelné.

    Dříve se mi pravidelně stávalo, že se Dashboardu nenačítaly feedy (nové pluginy, zprávy od vývojářů, atp.). Systém se pokusil, ale pak to spadlo. Podezříval jsem nějaké nekompatibilní pluginy, nicméně to byl právě problém s pamětí. Po instalaci Pure PHP Localization se uvolnilo cca 4-5 MB paměti a vše se načítá jako dříve.

    Je možné, že se zrychlilo i načítání stránek na mém blogu?

  2. 1. Je možné, že se zrychlilo i načítání stránek na mém blogu?

    To je dokonce i dost pravděpodobné.

    WordPress právě nepoužívá plugin Gettext (http://php.net/manual/en/book.gettext.php). Naopak všechny lokalizační soubory chroustá pomocí PHP. Proto je to tak náročné na paměť a pomalé zároveň.

    http://codex.wordpress.org/I18n_for_WordPress_Developers

    http://wordpress.org/support/topic/replacing-gettextphp-with-phps-gettext-function

  3. Testoval jsem na několika svých testovacích webech a funguje to krásně. A taky mi přijde, že se mi stránky načítaj rychlejc, paráda, díky za tip :ú

  4. Jo, kleslo mi to ze 76% až na 62%, což mě příjemně překvapilo. Dobrá věc, díky za tip!

  5. Taky se přidávám k spokojeným uživatelům, na které tenhle tip hodně zapůsobil. Vytíženost memory klesla z 84% na 72% a administrace frčí o 106. Samotný blog zůstal při staru, jelikož tam .mo soubory v šabloně nepoužívám.

    Rozhodně dobrý tip! :) Chtělo by to vícero užitečných tipů pro optimalizaci.

  6. Funkcni a nenapadny plugin, supr :) Memory usage klesla z 72% na 61% a zda se ze je blog i o neco malo rychlejsi, predevsim tedy administrace. Diky!

  7. Mam otazku, tento plugin jsem pouzival na strankach, z niceho nic mi narostla pamet na 98 procent a v administraci webu se zacaly vyskytovat chyby, editovat clanek primo z webu je nemozne, vyhodi chybu Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 491520 bytes)… plugin pouzivam 1 – NextGenGallery. Jak postupovat pri aktivaci pluginu na snizeni zateze? ted jakmile jej aktivuji se vubec nedostanu do administrace, musim ho rucne smazat, da se s tim neco delat? Napr. vymazat lokalizaci a pouzit tento plugin?? Dekuji za odpoved. http://www.valcha.eu – zde mam ten problem.

  8. Díky všem za zkušenosti!

    xmilek: Jaký máte hosting? Co to znamená, že paměť zničeho nic narostla na 98 %? Kolik byla předtím? Nemohl vám hosting snížit memory_limit? Deaktivujte všechny pluginy a zjistěte kolik paměti využíváte. Pak zkuste aktivovat pouze tento plugin a opět se podívejte na využití paměti. Je tam vidět nějaký rozdíl? Plugin se nijak nenastavuje, po aktivování by měl hned fungovat…

  9. Hosting: http://www.hosting-zdrma.cz
    Stav pameti vidim pres NGGalery, kde se ukazuje Využití paměti : 30.93 MB, PHP Memory Limit : 32M, pluginy jsem vypnul a zapl pouze ten plugin a kleslo to prave na tech 30.93. Na tento hosting jsem presel z IC.CZ, kde maji vetsi PHP ML 128M :( Bohuzel to asi nebylo spravne rozhodnuti. Na strankach nic narocneho nemam, jen recepty a popis pracek s galerii, pripadne se zeptam, nejaka nahrada za NGGalery? Diky a omlouvam svou neznalost.

  10. xmilek: Na orientační měření využité paměti je nejlepší jednoduchý plugin WP-Memory-Usage. Stačí ho nainstalovat, aktivovat a pak už v administraci (úplně dole ve spodní liště) vidíte aktuální hodnoty. Zkuste pak deaktivovat všechny ostatní pluginy a změřte využití paměti. Potom aktivujte plugin na snížení náročnosti lokalizace a opět změřte využití paměti (mělo by poklesnout). Pak můžete zkoušet zapínat další pluginy a uvidíte, co to unese. Obecně si myslím, že NextGen Gallery je na paměť (memory_limit) docela náročná. Nenavýší vám paměť (alespoň na 40 MB)? Zkuste jim poslat email, i když asi budou chtít, abyste přešel na vyšší tarif. Nebo můžete přejít na jiný hosting, jeden vcelku levný a spolehlivý tip naleznete i v banneru vpravo nahoře na našem webu. Divil bych se, kdyby na IC.CZ (freehosting) byl povolen memory_limit 128 MB, opravdu to tak bylo?

  11. Mám WP 3.1 v češtině, aktivace pluginu Pure PHP Localizations spotřebu nesnížila, naopak podle WP-Memory_usage o 100 kB narostla. Je možné, že na 3.1 v češtině už tenhle plugin nemá vliv?

  12. Teď jsem ten plugin WP-Memory-Usage nainstaloval a aktivoval a ukazuje mi to:
    Memory : 63.55 of 48 MByte MByte, takže 132%.
    Není to divné. Žádné chyby na stránkách ani v administraci nepozoruji.

  13. Honza Hučín, Tom: Ano, je to možné, už jsem se s tím také setkal. Obvykle se to stává v případě, kdy je na serveru použito nějaké cachování, takže už není možné další paměť uspořit. O jaké hodnoty memory_limitu konkrétně šlo? Každopádně plánovaný WordPress 3.4 by měl výrazně zlepšit využití paměti v případě použití lokalizačních souborů.

    Marek Štafl: To je opravdu podivné. Jaký používáte hosting? Už jsem to také jednou viděl a problém byl v rozdílném nastavení hodnoty memory_limit v php.ini a souboru .htaccess (případně definice WP_MEMORY_LIMIT v souboru wp-config.php). Zkuste všechny nastavené hodnoty raději zkontrolovat, někde bude patrně nastaven limit 48 MB, ale uplatňván bude nějaký vyšší limit.

  14. Aha, takhle to opravdu bylo. Hosting mám banan.cz a tam je u tarifu Standard memory limit nastaven na 48MB, ale já měl v .htaccess ještě z dřívějších dob nastaven 64MB. Požádal jsem podporu o navýšení limitu na 64MB a teď už to ukazuje správně :)

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *