Többen jeleztétek, hogy a Zip-eket nem tudjátok kezelni (az állományok jók, teszteltem!). Linuxon lett tömörítve, használd a 7zip (7zip.org) nevű programot hozzá.

kód optimalizálás tömböknél

Vissza a taglistához: /tag/PHP nyomtatóra küldöm a Mire figyeljük PHP-ben tömböknél nevű oldalt A felvétel ideje: 2007-10-27 13:35:19 Az utolsó módosítás ideje: 2007-10-27 13:38:54 Találatok Cimkére: 5270; Oldalra: 2119
Tömböknél (array()) típusú műveleteknél mire érdemes figyelni

A megjelenített kódok ciklusban 10 * futottak le, a végrehajtáshoz szükséges időt láthatjuk a teszt eredményeken.

Mi az ami gyorsíthatja a tömbökön végzett műveleteket:
  • rövid tömb nevek
  • rövid kulcs nevek
  • a kulcs és érték neveknél mindig " jelet használjunk ' vagy helyett
  • ha csak lehetőségünk engedi a típus definiáljuk érték adásnál is
  • kódolási stílus
  • ha egy kódblokk sokszor fut le akkor ott rengeteg ciklusidőt meg lehet takarítani optimalizálással.
  • folyt-köv...

Tömböknél használjuk az alábbiakat:


<?php

//bár lehet ilyen kódot is írni és működni is fog de hibás
$tomb[kulcs]="ertek";
$tomb['kulcs']="ertek";

//helyett mindig ezt a syntaktikát használjuk:
$tomb["kulcs"&gt;=(string) "ertek";

?>


Tömbök értékadásánál lasabb verzió

<?php

$tomb
[kulcs]=array();
for(
$i=0;$i<10;$i++)
{
    
$tomb[kulcs][$i]=$i;
}

/*
eremény
var_export($tomb[kulcs]);

array (
  0 => 0,
  1 => 1,
  2 => 2,
  3 => 3,
  4 => 4,
  5 => 5,
  6 => 6,
  7 => 7,
  8 => 8,
  9 => 9,
)

*/
?>


Tömbök értékadása gyorsabb verzió
<?php

$tomb
["kulcs"&gt;=array();
$a=&tomb["kulcs"&gt;;
for(
$i=0;$i<10;$i++)
{
  
$a[$i]=$i;
}
/*
var_export($a);
array (
            0 => 0,
            1 => 1,
            2 => 2,
            3 => 3,
            4 => 4,
            5 => 5,
            6 => 6,
            7 => 7,
            8 => 8,
            9 => 9,
)
*/
?>


Teszt eredmények:

lassabbgyorsabb $a[$i]különbség
7.58171081543E-51.19209289551E-5+ 6.38961791992E-5
3.60012054443E-51.12056732178E-5+ 2.47955322266E-5
3.60012054443E-51.00135803223E-5+ 2.59876251221E-5
3.50475311279E-51.09672546387E-5+ 2.40802764893E-5
3.48091125488E-51.12056732178E-5+ 2.36034393311E-5
3.60012054443E-51.00135803223E-5+ 2.59876251221E-5
3.60012054443E-51.00135803223E-5+ 2.59876251221E-5
3.50475311279E-51.00135803223E-5+ 2.50339508057E-5
3.60012054443E-51.12056732178E-5+ 2.47955322266E-5
3.60012054443E-51.00135803223E-5+ 2.59876251221E-5


Tömb listázás for ciklussal, count és sizeof teszt:
<?php

//$a tömb feltöltése

//lassú kód
for($i=0;$i<sizeof($a);$i++)
{
    
$d=$a[$i];
}

//gyors listázás
$x=count($a);
for(
$i=0;$i<$x;$i++)
{
    
$d=$a[$i];
}

?>
lassabb sizeof()gyorsabb count()különbség
0.2211599349980.000475883483887+ 0.220684051514
0.1885719299320.000545978546143+ 0.188025951385
0.1780891418460.000471830368042+ 0.177617311478
0.1765542030330.000470876693726+ 0.17608332634
0.1702790260310.000469923019409+ 0.169809103012
0.182477951050.000470876693726+ 0.182007074356
0.1731340885160.000470876693726+ 0.172663211823
0.1741440296170.000470876693726+ 0.173673152924
0.1626870632170.000469923019409+ 0.162217140198
0.1685128211980.000470876693726+ 0.168041944504



Érték megadás:
  • típus és szintaktika hibákkal
  • szabályos értékadás

<?php
//típus és szintaktikai hibával
for($i=0;$i<1000;$i++)
{
    
$a[alma]=korte;
}

//szabályos értékadás
for($i=0;$i<1000;$i++)
{
    
$a["alma"&gt;=(string)"korte";
}

?>


A teszt eredménye:

lassabb - típusgyorsabb + típuskülönbség
0.004903793334960.0004580020904540.00444579124451
0.00494098663330.0004479885101320.00449299812317
0.004886865615840.0004479885101320.00443887710571
0.004886865615840.0004470348358150.00443983078003
0.0094370841980.0004470348358150.00899004936218
0.00489306449890.0004479885101320.00444507598877
0.007189035415650.0004479885101320.00674104690552
0.004939079284670.0004470348358150.00449204444885
0.004937171936040.0004479885101320.0044891834259
0.01992392539980.0004467964172360.0194771289825
Tömb listázás összehasonlítás:
  • for(count)
  • foreach value

<?php

/*

$a értékei:
    for($i=0;$i<$i_end;$i++)
    {
        $a[$i]=$i;
    }

*/

//ez volt a lassabb
$x=count($a);
for(
$i=0;$i<$x;$i++)
{
    
$d1=$a[$i];
}

//gyorsabb
foreach ($a as $value)
{
    
$d=$value;
}

?>


lassabb for, countgyorsabb foreachkülönbség
0.0005738735198970.000218152999878+ 0.00035572052002
0.0004861354827880.000210046768188+ 0.0002760887146
0.000483036041260.000210046768188+ 0.000272989273071
0.0005459785461430.000209808349609+ 0.000336170196533
0.0004827976226810.000210046768188+ 0.000272750854492
0.0004839897155760.000210046768188+ 0.000273942947388
0.0004839897155760.000210046768188+ 0.000273942947388
0.000483036041260.000209808349609+ 0.00027322769165
0.000483036041260.000210046768188+ 0.000272989273071
0.0004839897155760.000210046768188+ 0.000273942947388


Foreach és While tesztelésnél hasonló eredmények jöttek ki. A foreach javára.

Megjegyzésként:
Aki igazán gyors kódot szeretne írni, alaposan meg kell ismernie a PHP működését.
  • bár nem típusos nyelv, de ha típusosként kezeljük ezzel nyerhetünk néhány ciklusidőt
  • a kódolási stílus is befolyásolhatja a kód sebességét.
  • A sorok közé írt megjegyzések lassítják a kódot.
  • tömb és kulcs nevek rövidítése 3-5 karakterig
  • $array[”ertek”]; !($array['ertek']; $array[ertek]) ne így használjuk!
  • $a=& $array[”kulcs”][”kulcs1”][”kulcs2”]; ez így gyorsabb, de vigyázat felülíródik az eredeti érték!
  • az olyan részeket a programban amik sokszor futnak le, optimalizálni kell.

For sizeof; for count; while; foreach teszt

<?php

//$a tömb feltöltése

for($i=0;$i<sizeof($a);$i++)
{
    
$d=$a[$i];
}

$x=count($a);
for(
$i=0;$i<$x;$i++)
{
    
$d=$a[$i];
}


$i=0;$x=count($a);
while(
$x>$i)
{
    
$d1=$a[$i++];

}

foreach (
$a as $value)
{
    
$d=$value;
}

?>

For, sizeofFor, countWhileForeach
0.2150659561160.0004730224609380.0004389286041260.000211954116821
0.1719760894780.0004680156707760.0004260540008540.000202894210815
0.1588249206540.0004689693450930.0004270076751710.000201940536499
0.1767640113830.0004680156707760.0004258155822750.000202178955078
0.1855008602140.0004689693450930.0004258155822750.000201940536499
0.171958923340.0004680156707760.0004248619079590.000202894210815
0.1667199134830.0004689693450930.0004270076751710.000201940536499
0.1735911369320.0004680156707760.0004260540008540.000203132629395
0.1639368534090.0004689693450930.0004260540008540.000201940536499
0.1826059818270.001058101654050.0004248619079590.000201940536499

Ebben a tesztben a foreach volt a befutó (de ezt ne vegye senki készpénznek :-).
A PHP folyamatos fejlődésének köszönhetően időnként minden átgyúrásra kerül. Így amelyik utasítás, (funkció) ma lassú volt az holnap a befutó lehet, vagy jön helyette jobb. Ez a szép a nyílt forráskódú rendszerekben.

A tartalomhoz kapcsolódó linkek:

ubuntu,linux

Blogmarkok

Collapsing Site Navigation with jQuery

jQuery alapú navigáció, beúszó kép és leírás elemekkel.

Simple Chat

Egyszerû szöveges fájl alapú PHP chat progi.

Showcase of Interesting Navigation Designs

Érdekes menü, navigáció megvalósítások.

Több mint 306 magyar Linkgyûjtemény

Érdekes gyûjtemény magyar katalógusokról, linkgyûjteményekrõl, cikk katalógusokról. PR érték és alkalmazás szerinti megjegyzéssel. Igényes munka és használható forrás, weblap népszerûsítéshez. Az egyik legjobb hazai publikus SEO lista.

AdMax SEO Toolbar

Firefox kiterjesztés SEO eszközként.

Identica PHP

Identi.ca mikroblog szolgáltatáshoz PHP class, egyszerû használattal.

Twitter OAuth PHP

PHP Oauth részletes leírás, avagy hogyan használhatod távolról a Twittert.

Secure backup, sync and sharing made easy.
Kövess a Twitteren

Top5 webes fájlmenedzser

Top5 webes fájlmenedzserA gyűjtésben szereplő elemek weben keresztül valósítanak meg fájlkezelést. A kiválasztásnál kiemelt szempont volt az egyszerű deszktop jellegű szoftverektől megszokott kényelem, a biztonság és a többfelhasználós beállítási lehetőség, egyszerű integrálhatóság és a felhasználhatósági (licenc) szempontok.

2009-5 kedvenc jQuery pluginje

2009-5 kedvenc jQuery pluginje2009-ben is vannak kedvenc jQuery plugin-jeim. Ezt szeretném veletek megosztani.
Úgy érzem kicsit változtam, a plugin választás a funkcionalitáson túl egy picit a parasztvakítás is bejátszik.

(Parasztvakítás (PW): olyan effektek aminek a gyakorlatban szinte semmi haszna nincs, de szemet gyönyörködtető)

Nem..

10 hasznos FireBug kiterjesztés

10 hasznos FireBug kiterjesztésHasznos FireBug képességeit kiterjesztő pluginek. Bár a FireBug önmagába is egy rendkívül jól használható Firefox kiterjesztés. De elérhető hozzá néhány nagyon profi kütyü, ami sokszor önálló funkciót valósít meg, de az esetek nagyobb részében a FirBug képességeit combosítják ki.

Ha még nem ismernéd a

50 Hasznos Firefox kiterjesztés Linuxra

50 Hasznos Firefox kiterjesztés LinuxraKedvenc Linuxon is működö Firefox kiterjesztések, mindennapos felhasználásra és webfejlesztőknek.

A addon-ok működnek Windows-os rendszereken is, de a cikk kifejezetten a Linuxra elérhető és hasznos Firefox kiterjesztésekből szemezget.

A Firefox 3.0 megjelenésekor már volt egy

350 hasznos Gimp effekt, Plugin, Script-Fu

350 hasznos Gimp effekt, Plugin, Script-FuHasznos pluginek, Script-fu-k, effektekkel, technikai megoldások gyűjteménye Gimp 2.6.X verziójához.

A cikknek célja az, hogy egyszerű megoldást adjon Gimp-hez, pluginek beszerzésére.

Szerencsére vannak olyan önzetlen projektek ahol összegyűjtik számunkra ezeket a nélkülözhetetlen eszközöket. Így sikerült összehozni 5 bejegyzésben..

Szoftverek

ArtH2O Blog tartalmából:

PHP Twitter Codeigniter OAuth

Codeigniter Twitter OAuth részletes leírás2010 Augusztus végétől már csak OAuth-on keresztül lehet bejegyzéseket küldeni a Twitterre illetve a hitelesítés ezen keresztül megy. Sok megoldás létezik a dologra, de mindegyik eléggé nyakatekert és nem igazán akarnak működni.

Érdemes elolvasnod a cikket, ha néhány óra kísérletezés meg szeretnél úszni!



Felvéve: 2010-09-04, Utolsó módosítás: 2010-09-04
Twitter, CLASS, Codeigniter, MVC, PHP oauth, twitter, ci, php, social

Bővebben →

10 hasznos új Codeigniter lib

Hasznos Codeigniter Lib-ek 2010-bőlTöbb okból is szeretem a Codeigniter keretrendszert. Az egyik oka, hogy ezt választottam keretrendszerül az nem más mint az egyszerűség. A másik az, hogy nem kell feltalálni a kereket, mert szinte minden tud, amire nekem egy alap alkalmazásnál szükségem lehet. Biztonságos, gyors és egyszerűen tanulható, jól dokumentált, szerethető rendszer. De a bejegyzés nem erről szól, hanem néhány 2010-es hasznos Codeigniter Lib-ről.



Felvéve: 2010-08-27, Utolsó módosítás: 2010-08-28
Codeigniter plugin, Codeigniter, MVC, PHP codeigniter, lib, class, 2010

Bővebben →

Stílusos űrlap elemek

Nem egyŰrlap elemek stílusának a megváltoztatása JavaScript és CSS eszközökkelszerű minden űrlap elemnek stílust adni. Gyakorlatilag checkbox, select, radio, file elemeknek nagyon nem is lehet, vagy csak részben. Erre találtak ki egy érdekes technikát, ami a működés közben az eredeti HTML elemet elfedi és azt egy grafikai elemmel helyettesíti. pl.: Egy checkbox, vagy radio esetében 2 állapota van bekapcsolt és kikapcsolt. Ha lehet kerüljük ezeket a technikákat, mert nagyon böngészőfüggő a működésük. Ha lehet maradjunk az eredeti űrlap elemeknél és azt csinosítsuk.



Felvéve: 2010-08-17, Utolsó módosítás: 2010-08-17
űrlap-design, webdesign, Űrlapok-Form, jQuery form, design

Bővebben →

Térképes cég-és weblapkatalógus

Térképes cégkatalógus és weblapajánló weboldal a regionalisbank.infoMár régóta szerettem volna egy olyan oldalt, ami weblapkatalógusként működik, de kicsit másképpen közelíti meg a dolgokat, mint a jelenleg piacion lévő katalógusok. Egy ilyen újszerű kezdeményezésem volt a szintén Codeigniter alapú Twitt.hu, ami egyben linkrövidítő szolgáltatás is. De a sok jó tulajdonsága mellet, még mindig hiányoltam benne valamit. Ezt a plusz dolgot sikerült beleplántálnom a RegionalisBank.info cég-és weblapkatalógusba.



Felvéve: 2010-08-11, Utolsó módosítás: 2010-08-28
Google Maps, Google, CLASS, SQL, Codeigniter, MVC, PHP terkepes, ceg, ajanlas, webkatalogus

Bővebben →

Kép átméretezés és cache

Kép átméretezés Smarty sablononVan néhány hasznos Smarty plugin, ilyen a Thumb nevű bővítmény is. Nagyon sokáig nem fejlesztették, már azt gondoltam kihalt alóla a fejlesztés, de 2010-ben egy újabb változat jelent meg belőle. Smarty 2.6.X és PHP 5.X.Y verzióhoz.

A bővítménnyel a sablonon tudunk képméreteket legyártani és gyorsítótárazni.



Felvéve: 2010-07-30, Utolsó módosítás: 2010-07-30
Smarty, PHP smarty, image, thumb

Bővebben →