Mérjünk, mert profileozni jó

Ma beraktunk az oldalunk alá egy kis profileozást, hogy mégis mennyi az annyi.

Futásidők összesítve:

total	10767,79122 sec
sql	 9872,687725 sec
php	  895,1034923 sec

Kb. ennek megfelelő mértékben érdekel, hogy mennyire lassú a PHP.

Hozzászólások

Annál jobban kellene érdekeljenek az explain planek ;)

Itt az a kérdés, hogy a logikát mi végzi el. Az SQL szerver rögtön olyan adatokat tol vissza, ami szinte egy az egyben mehet ki az oldalra, és a PHP csak közvetít, vagy a SQL szerver csak nyers adatot tol ki és a PHP végzi a feldolgozás részét.

A második eset egyértelmű, az első esetben meg kéne vizsgálni azt is, hogy mi történne, ha a logika nagy része PHP-ban lenne írva.

sub, már várom a flame-t :)

Ha tippelnem kéne a válaszok:
* rossz DBMS-t használsz
* rosszul írtad meg a lekérdezéseket
* rosszul tárolod az adatokat (aztán jönnek pro és kontra a normalizálás és indexelés viták)
* biztos rosszul van konfigolva a storage/rossz a hálózat, mert X DBMS az tökéletes
* ...

BlackY

De hat lassabb lett! :))

A teljes sztori azert kiegeszitesre szorul: eddig ugy altag 150-200% kozott mozgott a CPU hasznalat atlagosan (valami 2009 koruli 2xQ Opteron), kis kiugrasokkal, ami most a kb. egy honappal ezelotti "icipici" update soran (ahol a felszin alatt jo sokmindent meg kellett varialni -- de legalabb volt lehetoseg egy-ket nagyon regi dolgot kidobalni is) jol meg is lett dobva ugy 250-350 korulire. Na meg jott megegy szolgaltatas a gepre, igaz ott egyelore tobb terhelest okoz a backend melo, mint a frontend (remelhetoleg csak jelenleg :). Es mivel elegge SOS melo volt az egesz, igy hat optimalizacioval nem igazan torodtunk, mert fontosabb volt a feature, minthogy most negyede vagy harmada van kihasznalva a gepnek.

Persze, majd muszaj lesz itt-ott, mert 1-2 dolog, ami eddig a meg nem rossz sebessegkategoriaban volt, az most atcsuszott az ez mar picit cink kategoriaba. Emiatt kezdtunk el most mericskelni. (Na meg mert kollega egy hete kirakott valamit, ami csunyan megugrasztotta olyan 500-650%-ra, amit mar kezdtem sokallni, es le kellett vadaszni, hogy mi baszodott el :)

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Így már ok, csak a "Sot, képzeld, azota felugrott a CPU használat 2x-esete! :))"-ről azt hittem, hogy eddig idle-ben malmozott a program, amíg várt a db-re, db-t megfelezted, így kevesebb io-ra várás -> magasabb kihasználtság.

BlackY
Szerk.: Amúgy egyre kevésbé vagyok biztos abban, hogy lejött, már az eredeti postban is a képzelt trollok várható érveit írtam arra, hogy de miért szar mégis a PHP.

Nem te kardoskodtál amellett a minap, hogy igenis a PHP lassú, mert nem lehet alkalmazás szerverként működtetni, nem lehet bájtkódra fordítani stb.? ;)

Aki tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)

Na azert ezt sem irnam ala, van az a szint, ahol mar szamitott es at lett irva masra, mert tul sokaig futott valami nagyobb matekolas.

De amikor a PHP sebessegere hivatkoznak, akkor csak ezt tudom mondani: ameddig sokszor nem is a PHP a szuk keresztmetszet, addig nem erdekel. Ezt jol ismerem, meg mindig (sokkal) tobb a koder hozza, mint a pythnohoz vagy a rubyhoz (amiket sebesseg szempontjabol megint vicces emliteni, merthat azok is interpretaltak. Ok, tudom, abbol is van olyan, ami valami koztes kodra fordit, de most azokat hagyjuk.)

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

És van .net-es változata is.
Szépséghibája mindkettőnek, hogy adódnak kompatibilitási gondok velük bizonyos esetekben.
(konkrétumot ne kérj! Rég volt, nem igazán emlékszem a részletekre)

Aki tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)

Cserebe meg kevesebb koder, mint PHP-hez. Ezt a szempontot valahogy szeretik egy-egy nyelv fanjai figyelmen kivul hagyni, holott nagyon nem elhanyagolhato szempont.

Es amikor ezzel az akar 6x-os gyorsulassal is osszessegben kb. 6-7%-ot nyerhetunk (bar gyanitom ez egy atlagertek), akkor tovabbra sem latom egy percig sem indokoltnak, mert HW igeny egy centivel sem lesz kevesebb (arrol nem is beszelve, hogy boven nincs kihasznalva a gep fele), az oldal meg nem lesz latvanyosan gyorsabb.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Talan, ha felfogtad volna egy minimalisan is, akkor nem poenkodnal itt most ekkora arccal.

HA lehetne a PHP-t normalisan AS-kent futtatni, ugy, hogy a worker _threadek_ kozott egy szep nagy osztott memoriaban ott lenne egy csomo adat elore betoltve, AKKOR az adatbazis muveleteink jelentos reszet meg tudnank sporolni, amivel a 90%-nyi terhelest ami az adatbaizra esik le lehetne csokkenteni mondjuk 30-40%-ra. Es akkor mondjuk nem 1:10 aranyban oszlana meg az adatbazis terheles 11 egysegnyi osszidovel, hanem 1:4 aranyban 5 egysegnyi osszidovel.

De mivel a PHP erre _gyakorlatban_ nem alkalmas (az, hogy elmeletben egy irrealis, es messze nem uzembiztos modon van ra lehetoseg, hogy ha osszetakolod mindent magadnak, az nem megoldas), emiatt kenytelenek vagyunk mindig mindent kiszipkazni adatbaizsbol.

Ezt "fikaztam" a PHP-ben (bar inkabb csak tenykent kozoltem), nem a sebesseget.

De ugy latom, neked nehezedre esik felfogni a kulonbseget akozott, hogy *egy* adott nyelv sebessege milyen es akozott, hogy *tobb* rendszerbol a kulonbozo kepessegeik kihasznalasaval milyen sebessegu rendszert lehet epiteni.

Avagy hup certificated autos hasonlat: hiaba van neked egy ferrarid, amivel tobb korben is elviszed ugyanazt, ha neked egy IFA-ra van szukseged, amivel egyszerre elviszel midnent es nem kell folyton oda-vissza szalingozni.

De semmi gond, egesd csak tovabb magad.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Na jó, hagyjuk... ez már a totális sötétség. :DDDD
Nem keresem vissza az eredetit, volt egy elejtett megjegyzésed, hogy önmagában a PHP is szar, mert nem lehet bájtkódra fordítani (vagy az nem te voltál?)
Erre nyitottad ezt a topikot, hogy mégis jó az a PHP, mert az SQL műveletek sokkal több időt elvisznek.
Mindegy, nincs jelentősége. Ennyi elborult "agyú" alakot rég láttam egy oldalon. :DDDD

Aki tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)

MONDD B+! MEKKORA BETŰKKEL ÍRJAM, HOGY SMILEY?????
:D

Amit írsz az csak egy része volt annak a társalgásnak.
De mint említettem volt, írtál olyat is, hogy bájtkód hiánya. Annak meg semmi köze ahhoz amivel most magyarázkodsz.

Aki tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)

Nem tehetek rola, hogy idejossz trollkodni mikor ketten is megmondtak rajtam kivul, hogy fassaggal jossz. Aztan most egy szmajlira hivatkozva probalod letagadni a fogalmatlansagod.

Masreszt, jo lenne, ha egy picit visszavennel az arcodbol es magadba neznel, mert szerintem nem en kezdtelek el sertegetni teged.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Felfogtad, hogy
1. Egy hozzászóláson belül volt a smiley és a "fasság"? Nem utólag magyarázom.
2. Végeredményben amire utaltam, az megtörtént: fikáztad a PHP-t, most meg gyakorlatilag véded.
Magyarán te sem tudod eldönteni, hogy mit is akarsz.
A trollkodás az az, amit te csinálsz, meg itt alattam ez a két izé.

Aki tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)

2. Az a problema, hogy nem fogtad fel legutobb se, hogy _mit_ fikaztam a PHP-ben: a sebesseget is megemlitettem, de leginkabb a normalis AS hianyat. Sebesseg alatt egyebkent uzleti szempontbol erdekesebb tud lenni sok esetben az oldal sebessege, mintsem az, hogy mennyi az adott nyelv eroforras-igenye (ami kozott ordas nagy kulonbseg lehet).

Es ha vegre megertened, hogy ha a PHP tudna azt, amit en mondtam (hogy elore be lehessen tolteni egy csomo adatot es perzisztensen a memoriaban tarolni), akkor _az oldal_ lehetne lenyegesen gyorsabb, mivelhogy rengeteg SQL kerest meg lehetne sporolni. Ezen kijelentesemet pontosan az alapjan tettem, hogy mar akkor is ismertem azt, hogy nalunk kb. ilyen aranyok voltak, csupan nem volt a kezemben aktualis meres. n

Attol meg a PHP egy Java/.NET-hez kepest lassabb lenne, es ugyanugy egy alapvetoen lassu nyelv maradna, de az alkalmazasunkbol ki tudnank utni rengeteg lekerdezest, ahol a PHP nem csinal mast, csak az adatbazisra var. De ezzel az alkalmazasunk gyorsulna. Nem tudom, hogy ezt meirt olyan nehez megerteni.

Viszont, ameddig ebbol azt az egybites kovetkeztetest vonod le, hogy multkor a PHP-t fikaztam, most meg vedem, addig erdemi vitara nincs lehetoseg koztunk, sorry.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Te nem fogod fel, hogy piszkálódásként, poénként beírtam ide valamit és már fél napja azon rugózol, hogy mekkora fasság.
Úgy látszik, sokat ittam, mert azt képzeltem, hogy benned még van nyoma némi humorérzéknek.
Hogy nincs, arról nem én tehetek.

ui: az egyéb részleteket, ha folytatni óhajtod, az adatlapomon elérhető a privát üzenet, folytassuk ott, mert unom, hogy folyton olyanokat kell kerülgetni, akik az előzményekről sem tudnak. (egyébként már korábban is felfogtam, még abban a másik topikban, felesleges milliószor ismételgetni)

Aki tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)

A legszebb, hogy alatta ott van a grafikon, egyértelműen 1.0-nak állítva be a CPython 2.7-et és egyértelműen feliratozva 6.19-el a PyPy-t. Tehát angol tudás sem szükséges, és csúsztatni sem lehet ugyanezen számok felhozatalával, de te nem tudsz angolul és eleve csúsztatsz :)

BlackY

Es az a szep, hogy ez akkor igaz, ha pont olyan aranyban hasznaljuk ki, ahogy a fenti grafikonban is megoszlanak a dolgok. Nem lehet ezt igy altalanossagban letudni.

De tfh. nem 6 hanem 7x-ese. Attol, meg ugyanugy a 9%-nyi reszt optimalizalod az egeszbol.

----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™

Jelezném, a python az importált modulokat "lefordítja" és a fordított kódot futtatja. (lásd még .pyc fájlok!)
Performancia adatokkal nem szolgálhatok, de érzésre gyorsabbnak tűnt, mint a PHP.

Aki tudja, csinálja, aki nem tudja, tanítja... Hm... igazgatónak talán még jó lennék. :)

A facebookos PHP-s JIT-es fordítós HHVM-et kipróbáltátok? Az írt 6-szoros teljesítménynövekedés egész jól hangzik.

Nem tudom, mekkora változtatást jelentene egy ekkora kódon (ha egyáltalán), de ha már a DB-n nem lehet kis energiával javítani, akkor lehet érdemes kipróbálni.

--
The Elder Scrolls V: Skyrim