it-swarm-eu.dev

Je to těžké váhy pluginy nebo spousta pluginů, které stránky pomalé?

Často jsem slyšel, že mít spoustu pluginů zpomalí WordPress stránky. To samozřejmě dává smysl, protože čím více kódu se provádí, tím déle bude trvat.

Zajímalo by mě, zda pomalost je většinou:

  • výsledek naprostého počtu pluginů? (protože WP musí udělat nějaké zpracování k nalezení a načtení každého pluginu)

  • výsledkem je několik pomalých/těžkých pluginů?

Praktičtěji, když píšu vlastní, bych měl zkombinovat funkce do méně souborů, abych získal rychlost? Nebo je v pořádku mít 10-20 pluginů, každý dělá rychlý úkol?

6
allclaws

Obecné informace

Pravidlo palce " spousta pluginů zpomaluje web" je velmi tupý nástroj a je udržováno těmi, kteří nechápou, jak fungují pluginy, takže si vyberou něco, co je démonizovat.

Ano pluginy mohou zpomalit vaše stránky, ale to nemá co do činění s množstvím, které má co do činění s kvalitou a tím, co se snaží dosáhnout. Mohl bych napsat jediný plugin, který by přivedl stránku na kolena (kdyby to byl důvod, proč to mám udělat) a bylo by to horší než 50 dalších dobře napsaných pluginů. Samozřejmě lidé píší pluginy po celou dobu, která přinese stránky na kolena, protože neví nic lepšího.

Myslím, že jediná pravda na " spousta pluginů zpomaluje web" je to, že když máte spoustu pluginů, je pravděpodobnější, že budete chytit špatné.

Specifika

Promluvme si tedy více specifik. Pluginy používají " háčky", což jsou bity kódu PHP, které spouští určité body podél cesty provádění a mohou buď něco udělat, nebo filtrovat hodnotu nebo obojí. WordPress začne volat háčky dříve v jeho úsilí vytvořit webovou stránku a generovat HTML poslat do prohlížeče a pokračuje volání háky téměř až do konce běží pro danou stránku.

V závislosti na tom, který zavěsí plugin, může být volán pouze na určitých stránkách, v pozadí "nebo dokonce téměř nikdy. Některé háčky fungují pouze v konzole admin. Některé háčky fungují pouze na určitých stránkách administrační konzoly. A některé háčky jsou volány interním systémem psuedo-cron . OTOH, některé pluginy mohou načítat další soubory CSS nebo JS a každý z těchto souborů zpomaluje výkon, protože Pravidlo výkonu webu č. 1 .

Pokud chcete získat pocit, pro jaké háčky jsou na každé stránce označeny, použijte " Háčky pro nástroje WordPress "plugin, který jsem napsal pro otázku" Kde mohu najít seznam WordPress Hooks? "Zde je snímek obrazovky toho, co plugin zobrazuje v zápatí při použití:

Screenshot of Instrument Hooks for WordPress Plugin in action

Ale jen vědět, že háčky vám nepomohou vědět, zda je problém s pluginem. Můžete zavolat plugin 100 krát a volání to může být zanedbatelné ve srovnání s jiným háčkem volání, které přidává klauzuli WHERE na dotaz SQL, který by mohl bog dolů webu, který má více než několik stovek pracovních míst. Nebo to může udělat HTTP volání na jiný server. Nebo by mohl vyprázdnit pravidla pro přepsání na každé načtení stránky. Seznam hříchů pokračuje.

Jediný skutečný způsob, jak určit jistě, je to, že prověří háčky pluginu tím, že zkontroluje zdrojový kód nebo ho lépe provede pomocí debuggeru PhpStorm + XDEBUG .

Vaše vlastní pluginy

Nebojte se o to, jak je kód organizován pro účely výkonu; starat se o to, co dělá váš kód. Optimalizace často běžícího dotazu SQL buy pákový efekt Přechodové rozhraní API (Viz: Prezentace o Transient API ) by byla mnohem lepší pro výkon než sloučení kódu 10 pluginů do jednoho.

Na druhou stranu uvažujte o uspořádání kódu z jiných důvodů. Myslím, že dlouhý seznam pluginů může vytvořit psychologickou úzkost pro mnoho uživatelů; vidí takovou obrazovku, jsou ohromeni a chtějí věci zjednodušit:

Long List of Plugins
(zdroj: mikeschinkel.com )

Na druhou stranuněkdy mohou uživatelé být ohromeni, protože jeden plugin dělá příliš mnoho. Cítil jsem to tak například s zásuvným modulem Gd Star Rating . Poté, co jsem to zkusil na projektu (a ještě horší, snažil jsem se ho přimět, aby to udělal, co jsem potřeboval) jsem se rozhodl to vyhodit na to ucho.

Takže někteří lidé (jako já) často dávají přednost spoustě malých těsných pluginů, které dělají jednu věc a dělají to dobře (bylo by to hezké, kdyby WordPress podporoval funkci seskupení, jako je např. iPhone iOS 4 umožňuje seskupovat aplikace do složek .)

Long List of Gd Star Rating Options
(zdroj: mikeschinkel.com )

Každopádně doufám, že to pomůže.

8
MikeSchinkel

Pluginy přirozeně představují pouze jednu část příběhu o výkonu, takže jej nemůžete měřit počtem souborů na konci. Existuje více a nemůžete předem říci, co funguje, takže něco, co by mohlo být na vašem počítači dobře, není na ostatních.

Místo hledání výkonu byste měli definovat další a vlastní kritéria pro rozhodování. Například u zásuvných modulů dáváte přednost samostatným funkcím do samostatných zásuvných modulů, aby se věci nemíchaly. To nemusí být vždy výkonné, pokud jde o rychlost nebo využití paměti, ale obchod je udržet věci lehce spojené, takže je jednodušší vyvíjet a používat pluginy. Nezapomeňme, že když vyjde nová verze WordPressu, z deseti se mohou vymanit pouze dva pluginy a ne jeden velký. Nakonec uživatel potřebuje pouze tři z deseti pluginů, takže potřebuje méně paměti.

Pokud si uživatel stěžuje na výkon svého blogu, můžete normálně navrhnout, že si mohou koupit větší server a vyřešit problémy s výkonem.

(Pre-Mature) Optimalizace je kořenem všeho zla. Při psaní zásuvných modulů již nemyslete na výkon. Vezměte si to lehký a jasný způsob: WordPress není navržen výkon moudrý na konci, nedělají chybu a pokusit se napsat výkonné pluginy pro něj;)

WordPress je navržen s Big Ball of Mud- (anti-) design-pattern . Systém pluginů je ten, který s ním velmi dobře pracuje. Jen si nemyslím, že můžete optimalizovat, že hodně jako plugin autora. Nemůžeš. Nebojuj to :)

2
hakre

Můžete použít WordPress se sto pluginy, když je návrh pluginy v pořádku - většina pluginů má špatný kód, a to je problém výkonu WordPress.

0
bueltge

je to o správných zásuvných modulech. Zkontrolujte například, zda vaše plug-iny zapisují své vlastní tabulky do databáze, což obecně zpomaluje věci. cokoliv, co načte spoustu jquery nebo javascriptu, to obecně trochu zpomalí. Velké množství zásuvných modulů neznamená vždy pokles výkonu. Ujistěte se, že používáte zásuvný modul pro ukládání do mezipaměti, který vám pomůže.

Předpokládám, že se na to ptáte, protože zažíváte zpomalení? Zeptejte se svého hostitele, zda existuje cokoliv, co můžete udělat pro jeho urychlení, a ujistěte se, že je vaše konfigurace php nastavena správně.

0
rfair404

Obvykle neinstalovat příliš mnoho pluginů pro WordPress, místo toho se snažím používat tematické rámce, které dělají hlavní práci. Je pravda, že každý plugin doplní spotřebu zdrojů.

Každý plugin bude dělat něco, musí inicializovat, takže budou spouštět nějaký kód, když je požadována stránka pro vaše webové stránky, nemluvě o tom, že je tolik odkazů na panelu aplikace WordPress pro správu, což ztěžuje načítání.

Možná si to nevšimnete na sdíleném hostování s 2-3k zobrazeními stránek denně, ale pokud máte webovou stránku s 3k aktivními uživateli, každý z nich si každý den vyžádá 10 stránek, může se stát problémem.

0
Lucian

Díváte se na 2 věci, které zpomalí vaše stránky: 1, zpracování ze souborů na server (y), vaše php a 2, způsob, jakým procházení čte kód.

Pokud je kód nedbalý, prohlížeč kód před zobrazením na obrazovce dvakrát nebo třikrát zkontroluje. Pokud vaše použití mnoha zásuvných modulů se spoustou databázových a serverových požadavků může trvat nějakou dobu a pokud nebudou provedeny správně, mohlo by dojít ke konfliktu s požadavkem, který by mohl způsobit prodloužení času nebo horší, vaše stránky se nenačítají a/nebo chybových zpráv.

rFair404 zmínil programy pro ukládání do mezipaměti, které pomohou s požadavky serveru a některé z nich komprimují kód HTML a to mi připomíná, že musím komprimovat některé css stránky.

0
javajoba

Řekl bych, že odpověď je obě .


Další pluginy = více zpomalení

Každý plugin, který povolíte a který na stránku přidává soubor stylů a/nebo soubor javascript, dramaticky zpomaluje vaše webové stránky.

Dokonce i nejlepší písemné pluginy bude bog vaše stránky dolů, pokud každý vyžaduje stylesheet a javascript soubor udělat něco na přední straně vašich webových stránek.

Sloučení souborů

Pokud spustíte webovou stránku wordpress, dlužíte si to, abyste se naučili:

  • Správně sloučit soubory javascript dohromady
  • Správně sloučit soubory stylů dohromady
  • Přesuňte javascript volání ze záhlaví do zápatí

Máte-li spustit wordpress stránky a nemůžete dělat výše uvedené věci, pak byste neměli být spuštěn wordpress stránky ... nebo alespoň byste neměli stěžovat, když vaše stránky zpomaluje, jak si načíst další pluginy.

Navíc, každý, kdo běží na stránkách wordpress by měl vědět, jak:

  • Minifikujte soubory CSS a javascript
  • Zapněte kompresi serveru
  • Zajistěte, aby záhlaví s vypršením platnosti byla vybavena skripty a styly

Špatně napsané pluginy = více zpomalení

Hlavní způsoby, jak autor pluginů opravdu zpomalit vaše webové stránky, jsou následující:

  1. Načítání více skriptů nebo stylů pro jednu stránku - viz výše
  2. Nesprávné používání databáze - špatně napsané dotazy, úpravy dotazů atd. Mohou mít vážný dopad na webovou stránku. Pokud není možné ukládat výsledky do mezipaměti, může to také zpomalit. Většina lidí nasává vývoj a správu databází. Když tito lidé používají databáze, vznikají problémy.
  3. Použití wp cron nesprávně - konstantní cron úlohy na každém požadavku uživatele přinese server na kolena.

Krátké psaní opravdu špatný kód (semi-nekonečné smyčky, tuny regulárních výrazů, kde to není nutné, atd.), Většina věcí nebude mít velký vliv, když uvažujete, jak velké wordpress je již. Přidání další 1% času zpracování není moc.


Úkoly, které jsou vrozeně pomalé

Tam jsou některé věci, které jsou jen pomalé bez ohledu na to, jak dobře napsané:

  1. Používání služeb třetích stran - Kdykoliv se vaše reakce na uživatele spoléhá na odpověď od třetí strany, vaše stránky budou mnohem pomalejší.

Samozřejmě, když se provádí správně (výsledky v mezipaměti, dělá jako pozadí procesy, kde je to možné, atd.), Mnoho služeb třetích stran lze použít bez velkého problému.

0
Privateer