Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

mt_rand() koliko je brza ova funkcija?

[es] :: PHP :: mt_rand() koliko je brza ova funkcija?

[ Pregleda: 2245 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

NetworkAdmin

Član broj: 4445
Poruke: 609
*.access-sa1.lsinter.net



Profil

icon mt_rand() koliko je brza ova funkcija?23.08.2004. u 21:17 - pre 239 meseci
Naisao sam na sljedeci problem, vrijeme odgovora servera mi je 0.01 sekundu (tog reda velicine) kod aplikacije koja salje upite mysql bazi po razlicitim WHERE uslovima osim kad saljem najprostiji moguci upit WHERE ID IN(...)

Kod ovog moda WHERE ID IN(...) koristim 20 puta mt_rand(1234465,3514163) funkciju da dobijem 20 slucajnih ID brojeva (ID su bez prekida nije bilo brisanja i nije predvidjeno) i dobijem vrijeme odgovora oko 0.2 do 0.5 sekundi to jeste za red velicine vise. Probao sam u mysql konzoli sam SELECT ... WHERE ID IN(...) traje jako malo ispod 0.002 sekunde obicno.

Slucaj ORDER BY RAND() LIMIT 20 ne dolazi u obzir jer tabela ima preko 2 miliona rekorda i taj order by rand() traje 25 sekundi.

Sad me interesuje jeli stvarno toliko vremenski zahtjevno to mt_rand generisanje broja... jer ja ne vidim drugi razlog "zasto bi skripta zapela".
 
Odgovor na temu

Gojko Vujovic
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13651



+165 Profil

icon Re: mt_rand() koliko je brza ova funkcija?24.08.2004. u 00:05 - pre 239 meseci
Da te obavestim da si došao do tanke granice kada se PHP zamenjuje C-om.

I da se ne zavaravamo, svešće se na ono što sam ja u startu rekao, ako se sećaš:

1. ne može mysql
2. ne može php.

Osim za prototyping.
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
195.252.85.*

Sajt: localhost


+5 Profil

icon Re: mt_rand() koliko je brza ova funkcija?24.08.2004. u 00:54 - pre 239 meseci
ne razumem kakve ovo veze ima sa brzinom PHPa (odnosno Ca), kada je mt_rand() implementirana unutar biblioteke (verovatno C ili eventualno C++), a PHP je samo poziva.. drugim rečima, izbor jezika nema nikakve veze sa brzinom funkcije za koju NA pita..

ali da ga razočaram, ni brzina te funkcije (verovatno) nema veze sa njegovim problemom.. mislim, to si mogao i sam da testiraš.. ja za tih 0.2 sekunde koje pominješ izvrtim preko 100,000 (i slovima: sto hiljada) poziva funkcije mt_rand()..

biće da je negde drugde problem.. da li si iz konzole baš ispitivao sa 20 brojeva "ravnomerno" raspoređenih između 0 i 2mil? i to više puta za redom (sa različitim "slučajnim" brojevima)?

da li slučajno ne radiš još nešto kod tog upita? možda šalješ upit da saznaš broj elemenata u tabeli? ili nešto drugo?

a moguće je i da se rezultati ili neki indexi za ostale upite keširaju, a za ovaj sa random baš i ne mogu.. ;)

 
Odgovor na temu

NetworkAdmin

Član broj: 4445
Poruke: 609
*.access-sa1.lsinter.net



Profil

icon Re: mt_rand() koliko je brza ova funkcija?24.08.2004. u 01:16 - pre 239 meseci
Gojko i ja vodimo neku internu raspravu na forumu pa sad nije fol necemo vise pa zombi zanemari to... a sto se tice ovog mt_rand i ja sam bencmarkovao na datom racunaru i malo veci sam dobio broj za o.2 sekunde...

Vidite nije ni kod keshiranja problem a ni kod MySQL ovaj vadi podatke super brzo i sa tim random pa nije ni do kesha a sad vrijeme se potrosilo na kolacice dok pitas browser kad je u kolacicu bilo posljednji put udareno dugme koje trazi random rezultate (radi flood protekcije) tu se izgubi to vrijeme koje je u stvari Net Respond time a ne MySQL respond time
 
Odgovor na temu

NetworkAdmin

Član broj: 4445
Poruke: 609
*.access-sa1.lsinter.net



Profil

icon Re: mt_rand() koliko je brza ova funkcija?24.08.2004. u 01:17 - pre 239 meseci
naravno flood protekciju sam sad preko IP napravio server side pa sve radi kako bi i trebalo i mnogo brze :))
 
Odgovor na temu

[es] :: PHP :: mt_rand() koliko je brza ova funkcija?

[ Pregleda: 2245 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.