[ NetworkAdmin @ 24.09.2004. 09:16 ] @
PHP instalisana po default sad bi trebalo malo ubrzati ali bez zend, ioncube i slicnih akceleratora.

Ovo output buffereing i slicno dali to moze malo da pomogne na kraju krajeva da bi se stvar ubrala?
[ dinke @ 24.09.2004. 13:23 ] @
Osnovna ideja je "keširati" statične strane i smestiti ih negde u fajl kako bi se to vratilo korisniku umesto da se prilikom svakog requesta strana dinamički kreira. U zavisnosti od načina na koji se sama strana kreira (recimo ako je iz baze, koliko često se sadržaj baze menja i sl.) ovo može dovesti do značajnog ubrzanja.

Evo najjednostavnijeg primera kako se output buffering može iskoristiti:

Code:

<?php
// If a cached version exists use it...
if ( file_exists('./cache/2.cache') ) {

    // Read and display the file
    readfile('./cache/2.cache');
    exit();

}

// Start buffering the output
ob_start();

// Display some HTML
?>
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> Cached Page </title>
</head>
<body>
<!--body goes here-->
</body>
</html>
<?php
// Get the contents of the buffer
$buffer = ob_get_contents();

// Stop buffering and display the buffer
ob_end_flush();

// Write a cache file from the contents
$fp = fopen('./cache/2.cache','w');
fwrite($fp,$buffer);
fclose($fp);
?>


Ovo je naravno najjednostavniji primer koji ti može dati ideju kako da iskoristiš bufering. Evo ti i dva korisna linka:

http://www.zend.com/zend/art/buffering.php

http://www.onlamp.com/pub/a/php/2001/10/11/pearcache.html

Toliko od mene :)
[ Goran Rakić @ 24.09.2004. 20:11 ] @
Advanced PHP Programming ima celinu posvecenu kesiranju podataka, ponovnoj upotrebi rezultata i sl. Takodje, treba pogledati Rasmus-ovo predavanje Scaling PHP sa cini mi se ovodoisnjeg phpcon-a. (bilo je slicnih stvari i u vezi prelaska friednster-a na php).

E sada, tehnike za ubrzavanje PHP/Apache-a bez promena na kodu koji se izvrsava (znaci samo podesavanje php-a i apache-a, podesavanje okruzenja i sl.) predstavlja zanimljivu temu za razgovor u kojoj bih voleo biti posmatrac.
[ flylord @ 24.09.2004. 20:20 ] @
Pa instaliras lepo Zend Optimizer ili nesto slicno:)
[ NetworkAdmin @ 25.09.2004. 09:31 ] @
Vec imam keshiranje rjeseno sa Smarty i naravno ako je dio stranice keshiran onda niti pravim upite prema databazi i tako dalje, imam skoro 20 godina iskustva u programiranju tako da jako dobro se sjecam ubrzavanja basic i c programa pa seljenje if uslova izvan petlji i tako dalje optimizacija na tom atomskom nivou.

Nije to meni primarno bitno, mene interesuje vise ubrzanje u vremenu aplikacije dosta sam vidio kako mogu podesiti mysql da bi dobio te "performace gains" doduse zrtvovao sam acid transakcije ali recimo imam innodb storage mnogo brzi jer pomocu bufferinga vise me I/O ne zagushuje. Doduse u slucaju nestanka struje izbubicu sve unutar te sekunde (who cares I'm not a bank)...

Nisam do sad imao potrebu da sagledam apacha i php iznutra izgleda morace se malo zaroviti u dokumentaciju. O podesavanju paramatara mysal servera cemo na drugom forumu ovo ovdje sam naveo cisto kao primjer koji mi je dao ogromne ustede u vremenu.
[ -zombie- @ 27.09.2004. 12:10 ] @
pa, mnogo pitaš, i mnogo uopšteno, a mnogo malo informacija daješ, o samoj aplikaciji, o arhitekturi, o celoj postavci...

performance tuning nije prosta stvar (da se tako može objasniti na forumu sa par trikova i secret podešavanja u httpd.conf/php.ini). čak i kada znaš u detalje konkretnu aplikaciju (ti je pisao), i kada imaš tačna merenja (profiling) koji delovi koda su uska grla (nikada, ponavljam nikada nisu tamo gde pretpostavljaš, ma koliko iskustva imao, i ma koliko mislio da znaš), itd, etc..

ovako postavljeno, pitanje je na nivou "ej, ne radi mi igrica/kompljuter/internet, šta može da bude?".
[ NetworkAdmin @ 28.09.2004. 13:24 ] @
zombi razumijemo se skroz na skroz ali ipak vrijedi pokusati obicno su rjesenja prostija nego mi i pretpostavljamo.