Vebers Posted October 8, 2007 Author Report Posted October 8, 2007 > save php-code cache Nesapratu ko Tu īsti ar šo biji domājis. Tjip, labāk serialize vietā ģenerēt jau pašu php source ? Serialize / unserialize variants ir izmantots pašreizējā kodā - mans uzdevums to uzlabot ar jebkādiem līdzekļiem (Jaunu kasti pirkt nav risinājums) :)
Delfins Posted October 8, 2007 Report Posted October 8, 2007 serialize = read / unserialize include = read Tik lielam masīvam domāju, ka papildus noņems slodzi - un tieši CPU slodzi (netiek dzenāts strings)
Vebers Posted October 8, 2007 Author Report Posted October 8, 2007 Bet vai ģenerējot to PHP source, priekš ierakstīšanas failā nebūs vēl lielāks overhead?
Delfins Posted October 8, 2007 Report Posted October 8, 2007 Cache dati pārģenerējas reizi 3 min Nu pirmkārt vajag ģenerēt, tad kad kaut kas ir izmainījies. Otrkārt, tā ģenerēšana atmaksājās ... 1 reiz uzģenerē - pretī dabū > 100000 requestus failam (cipars izzīsts no pirksta, viņš var būt vēl gana augstāks)
Roze Posted October 8, 2007 Report Posted October 8, 2007 Bet vai ģenerējot to PHP source, priekš ierakstīšanas failā nebūs vēl lielāks overhead? Domāju ka nē.. Paskaties kāds izskatās: <? $arr = array(1 => 'value', 2 => 'value'); ?> Un tad <? echo serialize($arr); ?> Tev kā jau Delfins rakstija atkrīt serializācijas vajadzība un datu apjoms būtiski nemainīsies jo serializējot krāmējas tāpat visāda (tips/garums utt) figņa klāt (ja ne vēl vairāk). Serializācijas pasākums atkritīs Memcache variantā kad tiks uztaisīts binary protokols..
Vebers Posted October 8, 2007 Author Report Posted October 8, 2007 (edited) Skaidrs, ir vērts katrā ziņā pamēģināt. Kādas idejas kā masīvus uzģenerēt kā effektīvāk php kodu? Uz sitiena nekas nenāk prātā.. Edited October 8, 2007 by MakaTaNaw
andrisp Posted October 8, 2007 Report Posted October 8, 2007 Viendimensijas masīvs ? $content .= '$x= array('; foreach($arr as $k => $v) { $content .= $k.' => '.$v.', '; } $content .= ');'; Eskeipošana gan jāveic arī.
Vebers Posted October 8, 2007 Author Report Posted October 8, 2007 Viendimensijas masīvs ? Nea, daudz dimensiju masīvs
Delfins Posted October 8, 2007 Report Posted October 8, 2007 beigās salīdzini - include vs kešers. Es vēl gribētu redzēt arī nokompilēto_include vs kešers testu
Vebers Posted October 8, 2007 Author Report Posted October 8, 2007 (edited) Ok, uztaisīju arī include variantu. serialize variants: bez cache: 0.022 sec; no Db, ierakstīšana failā: 0.38 sec; no diska faila (cache content): 0.0084 sec; Include variants: bez cache: 0.022 sec; no Db, ierakstīšana failā: 0.12 sec; no diska faila (cache content): 0.032 sec; Vēljoprojām sanāk ka serialize variants ar FS ir visātrākais variants. Kādas citas idejas? Kā ar heap tabulām ? It just doesn`t make sence... Edited October 8, 2007 by MakaTaNaw
Delfins Posted October 8, 2007 Report Posted October 8, 2007 Tu gribi teikt read + unserialize ātrāks par include ? Pamēģini bināro inkludi. Kā arī hi-load saitiem - visus failus ir jākompilē - kaut vai ar to pašu turckmmcache - boosts ir ievērojams.
Vebers Posted October 8, 2007 Author Report Posted October 8, 2007 Negribu tā teikt, bet nu tā saka tie cipari lapas apakšā.. Kas ir binary include? Nekad ar tādām neesmu saskāries..
Delfins Posted October 8, 2007 Report Posted October 8, 2007 (edited) es takš pateicu - turck mmcache Tikai atceries vienu, ka kompilēt vajag uz citu direktoriju, lai neppārraksta oriģinālus :) Citādi atpakaļ kodu nedabūsi. Edited October 8, 2007 by Delfins
Roze Posted October 8, 2007 Report Posted October 8, 2007 es takš pateicu - turck mmcache turck mmcache šķiet jau ir kādus 3-4 gadus vecs produkts un manuprāt viņam vairs nav atbalsta 5.x (5.1/5.2 noteikti) php.. Projekts kas "forkojās" no mmcache ir eAccelerator http://eaccelerator.net/ Un tur nekas nav "jākompilē" bet bytecode cache glabājas shared memory.. ir protams iespēja arī keshot gatavu kontentu.
Recommended Posts