Jump to content
php.lv forumi

Eiropas Hitu Radio top saraksts


Recommended Posts

protams, nelasiji aprakstu?

 

- svaigā satura pārkodēšana json lai var glabāt teksta veidā un pēc tam base64 lai var lietot kā php stringu, jo visi zinām cik ilgi aizņemt file_get_contents, tapēc tā vietā lietojam include un glabājam cache failus kā php failus.

 

 

glabājas php faila

 

$cache_saved = "base64_encoded jo json atstaj "/'";

kautgan var tak enkodet tos quotes, bet vai vajg?

 

 

 

- update 0.1.1

http://paste.php.lv/fc80e2e459dbbc82f3d457b4b50f82d4?lang=php

Edited by EdgarsA
Link to comment
Share on other sites

Nē, ar to iznešanu biju domājis tā, lai var ātri pamainīt vērtībās nerokoties pa kodu :)

 

	class Ehrtop {
	private $cache_file = dirname(__FILE__).'/cache.php'; // glabājam kā php failus, jo mēs inklūdojam.
	private $cache_interval = 300;
	private $url = 'http://www.europeanhitradio.com/topi';
	private $referrer = 'http://www.europeanhitradio.com/index.php';

	public function setRefferer($referrer){
		$this->referrer = $referrer;
	}
	public function setUrl($url){
		$this->url = $url;
	}
	public function setCacheInterval($cache_interval){
		$this->cache_interval = $cache_interval;
	}
	public function setCacheFile($cache_file){
		$this->cache_file = $cache_file;
	}
...

 

Starpcitu, ir referrer, nevis refferer :)) (pats tikko uzzināju)

Pēc labā stila klases mainīgos kā privātus un attiecīgos get'erus un set'erus uzrakstam, lai no ārpuses var piekļūt...

Link to comment
Share on other sites

un ar ko include varētu būt ātrāks par file_get_contents() ???

dati taču tāpat ir jānolasa no faila, un abas funkcijas to dara!

 

man te pēdējo pāris mēnešu laikā bija vesela sērija ar timer piemēriem, kur vajadzēja lauzt dažādus mītus/stereotipus par to, kas ir ātrāks un kas ir lēnāks...

$gnTm = 0;
function tmu() {list($nSecU, $iSec) = explode(' ', microtime()); return $iSec + $nSecU;}  // micro time - izdod pašreizējo unix laiku: sekundes + mikrosekundes (aiz "komata")
function tmrSet() {global $gnTm; $gnTm = tmu();}  // set timer
function tmrGet() {global $gnTm; return tmu() - $gnTm;}  // get timer
function tmrEcho($sInfo = '') {printf('%s%.4f<br />', $sInfo, tmrGet());}  // echo timer - parāda laiku ar precizitāti līdz 100 mikrosekundēm (ilgākām darbībām). lielākas precizitātes mērījumiem desmitos mikrosekunžu (vai vēl mazāk) ir jāņem vērā arī pašas funkcijas izsaukuma laiks (tb tad būtu jāizmēra function call overhead)

tmrSet();
include 'cache.php';
tmrEcho('cache include: ');

tmrSet();
$cache_saved2 = file_get_contents('cache.php');
tmrEcho('cache read: ');
/*
aptuvens vidējais rezultāts uz mana pc:
cache include: 0.0170
cache read: 0.0005
*/

šajā konkrētajā gadījumā uz tavu ~50KB cache failu file_get_contents() izrādījās ~30x ĀTRĀKS par include

 

neņem ļaunā, bet hahaha...

jo visi zinām cik ilgi aizņemt file_get_contents
Link to comment
Share on other sites

Tas par to fgc noteitki bija domāt kā uz citiem hostiem, nevis lokāli.

fgc salīdzinot ar curl bija ~3-4x lēnāks...

 

  17  vote down check


I just did some quick benchmarking on this.

Fetching google.com using file_get_contents took (in seconds):

2.31319094
2.30374217
2.21512604
3.30553889
2.30124092

CURL took:

0.68719101
0.64675593
0.64326
0.81983113
0.63956594 

Edited by briedis
Link to comment
Share on other sites

briedi :) tas pa citiem hostiem ir skaidrs kapec curlu lieto mes te spriezam kko citu

 

ja glaba faila.php un lieto ka inkludi vajag taisit base64_encode kas automatiski 2x lielaku failu padara, bet es uzskatu ka tas strada atrak neka

 

file_get_contents kura gadijuma nav jaglaba ka base64_encodeetam.

 

- cache faili :) chache f... aili..

Link to comment
Share on other sites

var jau visko uzskatīt, taču kad teorētiski viss ir apfilozofēts par to, kas ir ātrāks (un visi, kas ir gribējuši, ir saderējuši uz aliņiem), tad ir jāķeras pie praktiskās performances mērīšanas, lai noteiktu, kas paņem mazāk cpu laika. tad arī noskaidrojas uzvarētājs ;)

 

šajā gadījumā plain dati (bez nekādiem base64) aizņem gan mazāk vietu, gan arī ātrāk nolasās ar file_get_contents(). kr4 double ieguvums :))

 

EDIT: teorētiski ir skaidrs, kāpēc include ir lēnāks. jo php parseris parsē visu to datu blāķi un interpretē kā php kodu. bet file_get_contents() vnk nolasa baitus un saliek string mainīgajā. tobish veic vnkāršu low level darbību: hdd -> ram

Edited by 2easy
Link to comment
Share on other sites

var jau visko uzskatīt, taču kad teorētiski viss ir apfilozofēts par to, kas ir ātrāks (un visi, kas ir gribējuši, ir saderējuši uz aliņiem), tad ir jāķeras pie praktiskās performances mērīšanas, lai noteiktu, kas paņem mazāk cpu laika. tad arī noskaidrojas uzvarētājs ;)

 

šajā gadījumā plain dati (bez nekādiem base64) aizņem gan mazāk vietu, gan arī ātrāk nolasās ar file_get_contents(). kr4 double ieguvums :))

 

Kā tas ir - plain dati? Serializēts masīvs?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...