Autor Zpráva
arnir
Profil
dobry den
mam rostouci funkci, kdy ze zadaneho cisla potrebuji vypocist jeho vyslednou hodnotu.
vytvoril jsem 2 moznosti. vysledky se sice uplne nerovnaji ale oba priklady vyhovuji.
chci se tedy zeptat co je rychlejsi?

a)v db bude ulozeno pouze jedno cislo a po jeho nahrati se pomoci vzorce podobneho tomuto: ((x*x*x)+348+(23*x))/12 vypocte vysledka hodnota.

b)ulozit v db jak toto cislo, tak i posledni hodnotu. v tomto pripade je vzorec pouze: x*7/6*posledni_hodnota_x

vim muze se to zdat jako malickost ale potrebuji to v aplikaci nekolikrat a navic pri velkem zatizeni bych chtel zvolit jednodussi variantu

dekuji
Werewolf
Profil
arnir
co je rychlejsi?
Co je rychlejší nevím...
A navíc ikdybys to dělal(a) třeba s deseti čísly, stejně to průměrnému serveru zabere maximálně pět sekund, takže bych byl v klidu...
SwimX
Profil
Werewolf
Co je rychlejší nevím...
když nevíš tak neodpovídej

průměrnému serveru zabere maximálně pět sekund, takže bych byl v klidu...
5sekund? cože? chceš říct že budu pět sekund čekat na dotaz na db a následné spočítání pár čísílek?
navíc arnir to chce „nekolikrat a navic pri velkem zatizeni“ takže jestli to bude trvat 5sekund tak potěš nás pánbůh
arnir
Profil
takze to nemam resit?
jen ze prvni moznost mi prijde jako slozita kalkulace a druha moznost je zase znovu dalsi sloupec do db
ale asi druha moznost se mi zda stejne lepsi.

ale i tak diky :)
SwimX
Profil
arnir
takze to nemam resit?
pokud ta zátež je vážně velká, pak bych to řešil. Zkus si ty skripty proměřit. Zvyšuj si do nějaké proměnné čas a na konci skriptu ho vytiskni.. Pak totéž s tím druhým.
reduxcz
Profil *
5 sekund? Ty jsi asi velky geek :-D...
Ta druha moznost bude o malinko rychlejsi, jestli tahas 1 nebo 2 hodnoty z db na tom moc nesejde to je prakticky to same, spis u toho vypoctu se budou dit rozdily, ale jak rikam naprosto minimalni...
Spis se zamer na ruzne cachovani atd nez zrovna na toto...
arnir
Profil
ok diky, no snazim se optimalizovat vsechno
Joker
Profil
arnir
Podle mého názoru bude obojí docela rychlé, obojí se dá udělat tak, aby to spočítala rovnou databáze a vrátila už výsledek.

Každopádně nejlepší metoda, jak zjistit rychlejší, je to prostě vyzkoušet- Databázový dotaz myslím jde v MySQL testovat příkazem BENCHMARK, na PHP jde udělat testovací skript- provést danou věc v cyklu třeba 10000krát (záleží na složitosti toho, co se testuje- aby to netrvalo věky, ale aby to zas nějaký čas zabralo) a vypsat čas, jak dlouho to trvalo.
arnir
Profil
pripadne muzu includovat soubor kde bude switch s 50 case kde bude pro kazde cislo jedna hodnota jiz predem nachystana.
vic hodnot nepotrebuji.
to se mi ze zacatku jevilo jako nejhorsi reseni ale kdyz jsem zjistil ze bude potreba max 50 hodnot, tak se mi jevi jako nejlepsi moznost.
co Vy na to?
karbon
Profil *
Pokud je hodnot pouze 50, a časová náročnost je vysoká, rozhodně bych neváhal a těchto 50 hodnot bych předpočítal a řešil přesně tak, jak jste popsal.
arnir
Profil
ano, vim ze switch zrovna neni nejrychlejsi ale urcite to bude rychlejsi nez nacitat z db nebo hodnoty pri kazdem volani prepocitavat.
uz jsem to tak provedl a soubor hodnot ma jen 2kb coz je myslim idealni reseni

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: