Jak řešíte výpočetně náročné úlohy v PHP aplikacích? rubrika: Programování: PHP

7 onelook
položil/-a 21.12.2014

Jak řešíte výpočetně náročné úlohy v PHP aplikacích? Tedy takové úlohy, které jsou v PHP velmi neefektivní a pomalé? Píšete si vlastní rozšíření PHP v C/C++? Komunikujete přes IPC s nějakým serverem napsaným v jiném jazyce? Voláte externí binárky? Neřešíte to? Přepíšete celý projekt do něčeho jiného? Jak takové věci řešíte a jak se to osvědčilo?

Myslím úlohy, které si musíte naprogramovat sami pro daný projekt - prostě kousek kódu, který musí být efektivnější. Tedy nemyslím to, že prakticky všechny vestavěné PHP knihovny jsou v C/C++ a běžně se používají.

odkaz
6 arron
odpověděl/-a 22.12.2014

Hodně záleží na tom, jestli je nutné dodat výstup ještě v průběhu requestu, nebo stačí úlohu provést "v dohledné budoucnosti" nezávisle na requestu. Tak či tak bych úlohu uplně oddělil od php a následně i na uplně jiný stroj.

Pokud potřebuješ dodat výsledek ještě v průběhu requestu, tak bych použil nějaký rest/soap. Pokud to úloha umožňuje, tak předpočítávat výsledky nebo alespoň dílčí výsledky.

Pokud dodání výsledku není časově kritické, tak pak bych zadal úlohu skrz nějakou frontu.

Oba způsoby jsou imho platformově nezávislé, čili se mohou optimalizovat nezávisle na aplikaci a jsou škálovatelné (teoreticky mohou běžet i na stejněm serveru, pokud to jeho kapacita umožňuje). Jakou konkrétně technologii zvolit pak záleží na konkrétním úkolu a na požadovaném výkonu.

Pro zobrazení všech 10 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.