Slevový týden - Květen Slevový týden - Květen
30 % bodů zdarma na online výuku díky naší Slevové akci!
Avatar
vich alexandr:21. května 22:48

Ahoj-
jako naprosty zacatecnik s PHP by mne zajimalo , jak bude velka zatez serveru pri
vyhledavani zaznamu v cca.1.000,- polozek a pouziti switch nebo array .
Ktery zpusob je vhodnejsi ?
Rad bych vyuzit free server jen z duvodu nizke a specificke navstevnosti svych stranek ,takze bych nerad pusobit pripadne problemy .
Odpovedi typu "hledej smudlo" nebo "testuj smudlo" atd. by byly pod uroven normalniho cloveka .
Dekuji.

Zkusil jsem: porozumeni pro pole (array) se mi nepodarilo radne pochopit , pro muj ucel se mi zda zbytecne

Chci docílit: chci eliminovat zatez serveru

 
Odpovědět
21. května 22:48
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:22. května 8:25
  • Si to otestuj, ne? Ja to delam porad. Napisi program na localhost, pridam tam cyklus, pridam mereni casu a zkousim.
  • A pokud se ti to bude zdat pomale, tak si vyrob indexy, jak to dela sql.
  • Jinak, rozumny clovek by pouzil sql pro tabulky.
  • Napriklad serazeni 1.000.000 cisel trva kolem 500ms pomoci javascriptu na uzivatelove starsim typu pocitaci (mem). Pokud mas spravne napsany algoritmus, tak 1000 radku je zcela zanedbatelne cislo. Stejny test, serazeni, js, 1000 cisel, trva 4ms

https://mlich.zam.slu.cz/…sorting3.htm
Rozbalis Algoritmus, zasrtnes tam jen JS native a kliknes start. Firefox ukazuje ms.

https://www.php.net/…icrotime.php
Example #1 Timing script execution with microtime()

<?php
/**
 * Simple function to replicate PHP 5 behaviour
 */
function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}

$time_start = microtime_float();

// Sleep for a while
usleep(100);

$time_end = microtime_float();
$time = $time_end - $time_start;

echo "Did nothing in $time seconds\n";
?>
 
Nahoru Odpovědět
22. května 8:25
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:22. května 8:33

To nelze rici, kdyz jsi nedal kod vyhledavaciho algoritmu ani nezname specifikace serveru, atd. Takze si ty arogantni poznamky typu testovani, hledani nech od cesty. Maximalne tak nekoho urazis. Treba chtel odpovedet, ale uz ti nenapise.

1000 radku je nic. Rekneme, ze se jedna o 1MB textovy soubor. Ale, kdyz budes delat zatez pravidelne, tak te posle server do haje. Pokud se jedna o tabulku, kde nikdo nebude delat upravy, muzes ji preci poslat uzivateli a at si s ni poradi jeho stroj, jak umi. Format json nebo csv. 1MB soubor nebo obrazek, to nejak zkousne. Kdyz mu pak pujde vyhledavani bleskove bez nutnosti zatezovat server. Pokud se nejedna ovsem o GDPR, tabulku osob. Tu poslat nemuzes, nebo bys nemel.

 
Nahoru Odpovědět
22. května 8:33
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
vich alexandr:23. května 16:53

to Petr Mlich -

dekuji za navod/myslenku (i s prikladem) , jak si vse otestovat sam .
Nevedel jsem , netusil jsem .

Ohradil bych se pouze o snaze nekoho urazit - - - dotaz byl psan
s uvedenim ze se jedna o "naprosty zacatecnik" , takze kazdy rozumny
by mohl pochopit , ze vlastni dotaz muze byt i ne zcela presny .
V puvodnim dotazu zadnou aroganci nevidim , ucim se sam
a kdysi davno ve skolnich lavicich jsme nikdo o PHP nemeli ani tuchy .
Toz tak , p.Mlichu .

 
Nahoru Odpovědět
23. května 16:53
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:10:25

Musel bys napsat vic konkretnich informaci. Z toho dotazu se neda prilis neco doporucit. Treba, jakeho typu ty informace jsou, priklad. Treba z jineho oboru, treba seznam knizek a autoru?
U tech poli a switchu je moznych nekolik zapisu a kazdy je vhodny pro neco jineho, jiny typ prace s polem. Takze tezko takhle doporucit, co by bylo vhodnejsi pro tvuj pripad, kdyz vlastne o tvem pripadu nic nevime.

if ($str=="aaa") {...}
elseif ($str=="bbb") {...}
elseif ($str=="ccc") {...}
elseif ($str=="ddd" || $str=="eee" || $str=="fff") {...}
else {...}

switch ($str)
{
case "aaa": ... break;
case "bbb": ... break;
case "ccc": ... break;
case "ddd": case "eee": case "fff": ... break;
case "ggg": ... ;
case "hhh": ... ;
case "iii": ... break; /// ggg hhh iii se treba pomoci ifu asi dela na 2x
default ...;
}

$list = array ("ddd", "eee", "fff");
if (in_array($str, $list)) {...}

$list = array ("ddd" => "xyz", "eee" => "abc", "fff" => "def");
foreach ($list as $key=>$value)
  {...}
if (isset($list["ddd"])) {...} // zjistovani existence pomoci isset je rychlejsi nez pomoci in_array

// atd, dalsich 1000 zapisu if, case, array, funkci kolem nich

Tvuj dotaz je, jako by ses zeptal, co je vhodnejsi pro tve auto, aby jezdilo znecistovalo zivotni prostredi co nejmene. Kdyz vlastne o tvem aute nic nevime, tak nemane tuseni, jake doplnky se k nemu daji poridit.

Editováno 10:28
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.