Autor Zpráva
janbarasek
Profil
Ahoj,
pracuji na mém dlouhodobém projektu (už něco přes 2 roky) znalostního hledání a přemýšlím nad optimalizací. Protože je systém opravdu rozsáhlý, tak mě napadlo jednotlivé dílčí části rozdělit na mnoho souborů a ty poté volat podle toho, který bude zrovna potřeba.

Jaké to je ale z pohledu rychlosti?

Změřit přístupovou dobu do souboru umím, o to mi nejde. Jde mi spíše o to, žže bych rád věděl, jak je toto řešení efektivní vůči jiným. Jde mi o to, že jednotlivé části systému (scripty) mám takto rozdělené, protože mi připadá zbytečné držet v paměti i ty části kódu, které se nepoužívají. Na druhou stranu je ve hře ale zase přístupová doba na disk (případně do cache).

Co si o tom tedy myslíte vy?
Alphard
Profil
I/O operace jsou obecně pomalé, ale u velkých systémů je určitě lepší postupné načítání. Většinou se automaticky načte celé jádro a pak podle potřeby.
autoloading problém neřeší?
janbarasek
Profil
Alphard:
V současné době to řeším tak, že se nejprve spustí parser, který se pokusí uhodnout, co uživatel hledá a podle toho zavolat specializovaný script, který o dotazu dokáže zjistit další informace.

Typicky to funguje tak, že uživatel položí dotaz typu: "25.2.2014 + 16 dní 28 minut 15 sekund", rychlý parser zjistí, že se jedná o operaci s časem a pak zavolá box, který umí pracovat jenom s časem a podrobně dotaz rozebere a výsledek může být něco jako na tomto obrázku.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: