file_get_contents zauzece CPU-a?

file_get_contents zauzece CPU-a?

offline
  • Software developer
  • Pridružio: 06 Sep 2005
  • Poruke: 3800
  • Gde živiš: Beograd

Da liz nate koliko file_get_contents opterecuje cpu?
Poslali su mi upozorenje da mi sajt previse opterecuje cpu i ram na serveru i da ce me iskljuce ako ne sredim.
Dali su mi da fajl kursna_lista.php najvise trosi, a u njoj imam file_get_contents koji dovlaci podatke sa jedne nase banke i onda parsira sa 2 explode-a.

Da li postoji neko pametnije resenje? Sajt dnevno ima oko 1500 unikatnih poseta i kursna lista je na svakoj stranici...

Da li bi mi pomoglo ako bih recimo to prebacio na neki drugi server da radi a ovamo samo include-ovao taj fajl? Posto pretpostavljam da bi i include radio sporo kad dovlaci sa drugog sajta stranicu?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 21 Apr 2007
  • Poruke: 98

Jesi li probao preko cURL?

Ili bolja varijanta:
Keširaj parsiran rezultat u html i osvežavaj na par sati.

$Cache = 12; //kesira na 12 sati if (file_exists("./cache/kursna_lista.html") AND time() - $Cache*60 < filemtime("./cache/kursna_lista.html"))     {          include("./cache/kursna_lista.html"); exit;} //ili file_get_contents('./cache/kursna_lista.html'); else { //TVOJ KOD ZA KURSNU LISTU //Opciono izmeni file_get_contents sa cURL metodom //Snimi rezultat u /cache/kursna_lista.html //Verujem da vec ovo znas...ali eto :) }



offline
  • PHP Developer
  • Pridružio: 02 Okt 2005
  • Poruke: 546

Bas ti je spora skripta treba mu vise od 2 sekunde.
A sto ti to ne kesiras na disku i parsiras 1 dnevno.

offline
  • Software developer
  • Pridružio: 06 Sep 2005
  • Poruke: 3800
  • Gde živiš: Beograd

Ok, hvala za savet, probacu sa ovim sto si dao za kesiranje.

Trenutno sam uradio da se smesta u bazu pa iz baze da cita a da se file_get_cotents poziva samo jednom dnevno (kad se osvezava lista) , ali rucno...

Probacu ovako kako si naveo da automatizujem.

PS. Citanjem iz baze mnogo brze odradi posao nego sa fgs

offline
  • Pridružio: 21 Apr 2007
  • Poruke: 98

Još brže će ako keširaš

I još brže će ako koristiš cURL.
Smile

offline
  • PHP Developer
  • Pridružio: 02 Okt 2005
  • Poruke: 546

Jutarnji predlog.
Najelegantnije resenej je cron job koji ce 1 dnevno kad banka uodejtuje listu izgenerisati kurs.html na disku i posle njega koristis na stranici. To ce da trosi najmanje resursa.
Takodje proveri ako mozes dali je jos neko koristio tu skriptu za generisanje kursa, mozda je 'pozajmio' za svoj sajt.

offline
  • Software developer
  • Pridružio: 06 Sep 2005
  • Poruke: 3800
  • Gde živiš: Beograd

Hvala, to za cron je palo nocas i meni na pamet, videcu , verovatno cu tako da uradim.

Hvala na predlozima

offline
  • Pridružio: 11 Maj 2005
  • Poruke: 871
  • Gde živiš: Aleksinac - Niš

Ili kesiranje sa cronom, ili da na toj stranici imas neki js koji poziva API na sajtu sa koga skidas kursnu listu. Mada je bolje kesiranje i cron uz koriscenje cURL biblioteke.
fopen, curl i druge slicne funkcije nikako ne smeju da idu na stranice koje se prikazuju korisnicima.
Prvo, opterecuju server, drugo, potrebno je nekoliko sekundi da vrate zeljenu stranicu, da je parsiraju i prikazu tvoju stranicu korisniku.
Vece vreme odziva takodje utice na google ranking.

Pored toga, pozeljno je kesiranje jos nekih stvari iz baze. Na primer, ako imas milione redova u nekoj od tabela, a potrebno je da iz te tabele izdvojis top 10 trazenih pojmova, bolje je da u odredjenim vremenskim intervalima imas cron koji ce tih 10 da izvuce iz tabele nego da to cinis za svakog korisnika posebno.

Ko je trenutno na forumu
 

Ukupno su 775 korisnika na forumu :: 4 registrovanih, 0 sakrivenih i 771 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: kybonacci, Mi lao shu, prekodrinski, Viktor Petrenko