mboost-dp1

Facebook

Facebook optimerer PHP med op til 50 %

- Via Facebook - , redigeret af Emil , indsendt af arne_v

I arbejdet på at minimere belastningen på deres servere har man hos Facebook arbejdet på at optimere PHP til at anvende færre ressourcer. Det er blevet til projektet HipHop for PHP, der kraftigt kan reducere ressourceforbruget.

Projektet har været undervejs i over to år, og Facebook har selv benyttet teknologien de seneste seks måneder. HipHop for PHP konverterer PHP-koden til C++, der er meget mere effektiv.

Udvikler Haiping Zhao fra Facebook fortæller på sin blog, at projektet i gennemsnit har reduceret CPU-forbruget på deres servere med 50 %.

Haiping Zhao, udvikler hos Facebook skrev:
With HipHop we’ve reduced the CPU usage on our Web servers on average by about fifty percent, depending on the page. [..] We are proud to say that at this point, we are serving over 90% of our Web traffic using HipHop, all only six months after deployment.

Du kan læse meget mere om projektet ved at følge linket til kilden.





Gå til bund
Gravatar #1 - Windcape
4. feb. 2010 11:42
Der har dog været utrolig meget kritik af projektet blandt en lang række udviklere, og Rasmus Lerdorf har også været ude at sige at det ikke er noget specielt.

Umiddelbart kunne jeg nemt forestille mig at problemet er dårligt skrevet PHP kode ;-)
Gravatar #2 - anazonda
4. feb. 2010 11:50
Windcape (1) skrev:
Umiddelbart kunne jeg nemt forestille mig at problemet er dårligt skrevet PHP kode ;-)


Jeg tror helt ærligt ikke at det er det der er problemet... Jeg mener, hvor mange brugere er det lige der er på facebook?

Men det er i orden hvis du kan kode facebook så det har et reduceret CPU forbrug, uden at skulle bruge diverse optimeringsværktøjer udover at renskrive koden.
Gravatar #3 - photonatic
4. feb. 2010 11:54
Windcape (1) skrev:
Umiddelbart kunne jeg nemt forestille mig at problemet er dårligt skrevet PHP kode ;-)


Er nok også én af grundene, men de har måske vurderet at tiden til at optimere compileren har været det værd ift. at performance-gennemteste deres kodebase.
Gravatar #4 - mathiass
4. feb. 2010 11:58
Windcape (1) skrev:
Umiddelbart kunne jeg nemt forestille mig at problemet er dårligt skrevet PHP kode ;-)
Det er 50% hurtigere på det samme kode. PHP er baseret på en ret ueffektiv fortolker, så der er meget at vinde ved at forbedre det. Projektet compiler fra PHP kode til C++ kode og herefter køres den genererede C++ kode igennem en almindelig compiler med alt hvad det giver af optimeringer. Det er nok muligt at skære endnu mere af køretiden.
Gravatar #5 - Zhor
4. feb. 2010 11:59
Aha så fik jeg da svar på hvorfor Facebook har opført sig mærklig i en længere periode og stadig gør...

Kan så sige at der er problemer i det for den vil ikke altid opdatere forsiden og andre gange vil updates ikke vise fra et par dage før altså 1 - 3 dage forsvinder men det kommer så tilbage :S

Kan så nu forstå hvorfor det har været sådan i den sidste tid :S
Gravatar #6 - mathiass
4. feb. 2010 12:01
Btw, det er lidt mystisk at ham der har lavet det ikke har bedre styr på terminologien end det blog indlæg giver indtryk af. Han siger blandt andet at det ikke er en compiler fordi target sproget er C++ og at Java er et fortolket sprog.
Gravatar #7 - mathiass
4. feb. 2010 12:01
#5 Caching problemer har ikke noget som helst med implementationen af sproget at gøre. Overhovedet...
Gravatar #8 - Onde Pik
4. feb. 2010 12:19
#1

Med det ektreme load der er på Facebook har optimering af kode naturligvis høj prioritet. Og mit gæt er at de folk de har ansat til at lede udviklingen af deres system er meget dygtige.

Så mon ikke koden er temlig optimeret i forvejen? Tror du virkelig at Facebook er dumme nok til ikke at tænke på kode optimeringen før de tænker på den her løsning?

Generelt er det sgu ret utroligt hvor ofte en eller anden ubetydelig nørd på newz.dk tror han er klogere end lead udviklere hos firmaer som Facebook. Oven i købet uden at have nogen somhelst indblik i hvordan deres system fungerer internt.


Desuden er PHP et fortolket sprog som mathiass også nævner. Og i princippet er fortolkede sprog langsommere at afvikle end oversatte sprog. Hvilket bare gør din kommentar endnu mere tåbelig.
Gravatar #9 - Dan
4. feb. 2010 12:25
Jeg er da sådan set enig med ham i at det ikke er en compiler, da der oversættes fra et højniveausprog til et andet. Min opfattelse af en compiler er at den skal "et niveau ned".

Java compiles til en virtuel maskine, så en eller anden fortolkning skal der til, før hardwaren kan forstå koden.
Gravatar #10 - jimmi
4. feb. 2010 12:31
mathiass (4) skrev:
Det er 50% hurtigere på det samme kode. PHP er baseret på en ret ueffektiv fortolker, så der er meget at vinde ved at forbedre det.


PHP fortolkeren er nu ret hurtig, men et fortolket scriptsprog er selvfølgelig altid langsommere end præ-kompileret kode.

Facebooks løsning er interessant, men ikke særlig relevant for flertallet af hjemmesider. For de fleste vil det være mere interessant at optimere database-forespørgslerne og lave nogle gode cache-foranstaltninger.
Gravatar #11 - spectual
4. feb. 2010 12:38
#10 Det er vel altid interessant med performance optimeringer - men lige denne løsning henvender sig nok bredest hvis den kan gøre den ubemærket.
Gravatar #12 - trylleklovn
4. feb. 2010 12:40
anazonda (2) skrev:
Jeg tror helt ærligt ikke at det er det der er problemet... Jeg mener, hvor mange brugere er det lige der er på facebook?


Onde Pik (8) skrev:
Med det ektreme load der er på Facebook har optimering af kode naturligvis høj prioritet. Og mit gæt er at de folk de har ansat til at lede udviklingen af deres system er meget dygtige.


Ja for det var jo tilfældet med myspace :P
Gravatar #13 - Windcape
4. feb. 2010 12:41
Onde Pik (8) skrev:
Så mon ikke koden er temlig optimeret i forvejen? Tror du virkelig at Facebook er dumme nok til ikke at tænke på kode optimeringen før de tænker på den her løsning?
Ja, faktisk.

Du kan jo f.eks. prøve at studere koden til f.eks. MediaWiki som blandt andet har været codebase for wikipedia.

Det er volsomt typisk at PHP løsninger bliver lavet uden overordnet arkitektur, eller fokus på performance, og så først senere når projektet er for stort til at du kan kode det om, bliver optimeret ved hjælp af f.eks. opcode cache, eller løsninger som denne her.
Gravatar #14 - mathiass
4. feb. 2010 12:41
Dan (9) skrev:
Jeg er da sådan set enig med ham i at det ikke er en compiler, da der oversættes fra et højniveausprog til et andet. Min opfattelse af en compiler er at den skal "et niveau ned".[quote]Ok, den sædvanlige definition er at en compiler oversætter fra et source sprog til et target sprog (uden at lægge nogen restriktioner på hvad source og target er). At oversætte til Eksempelvis et subset af C for at bruge en gængs compiler til at lave binær kode er et trick som er ret udbredt.
[quote=Dan (9)]
Java compiles til en virtuel maskine, så en eller anden fortolkning skal der til, før hardwaren kan forstå koden.
Java compiles til et simplere sprog kaldet Java bytecode som compiles (JIT) videre til native kode ved kørsel. Der findes også en fortolker i JVM'en med som sådan at kaldet Java fortolket er meget misvisende hvis det ikke er direkte forkert.
Gravatar #15 - Windcape
4. feb. 2010 12:43
Onde Pik (8) skrev:
Generelt er det sgu ret utroligt hvor ofte en eller anden ubetydelig nørd på newz.dk tror han er klogere end lead udviklere hos firmaer som Facebook.
Men den ubetydelige nørd har også mange års erfaring med udvikling af systemer i PHP.

Og den ubetydelige nørd sagde at han "kunne forestille sig".

Altså, det var en tanke. Måske skulle du lære at læse indlæg ordenligt. Du er også selv en ubetydelige nørd, og derfor vil du så aldrig forholde dig kritisk til noget som helst I guess?
Gravatar #16 - mathiass
4. feb. 2010 12:43
jimmi (10) skrev:
Facebooks løsning er interessant, men ikke særlig relevant for flertallet af hjemmesider. For de fleste vil det være mere interessant at optimere database-forespørgslerne og lave nogle gode cache-foranstaltninger.
Den er relevant fordi man i princippet kan skifte som PHP fortolker ud med denne compiler og opnår at ens PHP kode kører dobbelt så hurtigt uden at gøre noget som helst for det selv. Den væsentligste begrænsning er at eval ikke er understøttet, men det er der sådan set ingen grund til at man ikke skulle kunne understøtte. Facebook har nok bare ikke haft brug for det...
Gravatar #17 - Windcape
4. feb. 2010 12:45
#16

Man kunne også vudere om det overhovedet er værd at bruge PHP som teknologi hvis man kan optimere hastigheden med 50%.
Gravatar #18 - mathiass
4. feb. 2010 12:55
Windcape (17) skrev:
Man kunne også vudere om det overhovedet er værd at bruge PHP som teknologi hvis man kan optimere hastigheden med 50%.
Tjo, der er jo som sådan ingen grund til at sprog som PHP skal være langsomme. Der kan sagtens laves bedre implementationer af PHP, og at nogen rent faktisk arbejder seriøst på det må da netop gøre PHP mere interessant end det tidligere har været. Folk bruger PHP af andre grunde en hastighed. De bruger det fordi det er nemt at gå til og fordi det er let at skaffe programmører som kan finde ud af det. Performance problemerne er først aktuelle når sitet bliver stort.
Gravatar #19 - jimmi
4. feb. 2010 13:00
mathiass (16) skrev:
Den er relevant fordi man i princippet kan skifte som PHP fortolker ud med denne compiler og opnår at ens PHP kode kører dobbelt så hurtigt uden at gøre noget som helst for det selv.


Bortset fra at man skal sidde og kompilere koden hver gang man ændrer det mindste, og iøvrigt skal have en dedikeret server med special opsætning for at køre det.

Hvilket altsammen er lidt overflødigt, hvis PHP-afviklingen ikke udgør nogen flaskehals.
Gravatar #20 - ipwn
4. feb. 2010 13:05
#19 Du skal kompile ved hver ændring det er sandt, men det er jo kun én gang. Der er jo ingen der sidder og koder på en live side anyways.

Desuden kræver C++ ikke nogen speciel opsætning. Det er maskinkode efter det er blevet kompileret. PHP derimod kræver PHP fortolkeren.

Windcape (17) skrev:
#16

Man kunne også vudere om det overhovedet er værd at bruge PHP som teknologi hvis man kan optimere hastigheden med 50%.


Det er pænt svært at skrive webservices med C++. PHP er lavet til formålet, så det er meget mere anvendeligt til formålet. At man derefter kompilerer det om til en anden kodebase, er der jo ingen problemer i. C++ bliver jo også kompileret til assembly og derefter bytecode, fordi det er alt for bøvlet at skrive sådan noget selv.
Gravatar #21 - ipwn
4. feb. 2010 13:12
On-topic:
Spændende ellers. Det er jo blot endnu et redskab til brug i fremtidens web systemer som skal kunne skalerer i helt stor grad. Jeg er pænt sikker på at deres database systemer er optimeret i så høj grad som det nu er muligt. De skulle vist have to-tre centraler med grids af MySQL databaser kørende.

Så er det jo ganske naturligt at finde ud af hvor man ellers kan spare nogle ressourcer. Det er jo ikke kun tid der er tale om her. 50% færre ressourcer i brug er jo penge sparet på RAM og elektricitet. I en sådan skala, er det helt sikkert et seks cifret beløb de kan sparer årligt ved denne optimering.

(Almindelige dødelige kan selvfølgelig være fuldkommen ligeglade, da vores små sider kræver så lidt at det er fuldstændigt trivielt)
Gravatar #22 - Windcape
4. feb. 2010 13:27
ipwn (20) skrev:
PHP er lavet til formålet, så det er meget mere anvendeligt til formålet. At man derefter kompilerer det om til en anden kodebase, er der jo ingen problemer i.
Websider, Ja. Webservices, nej.

PHP's biblioteker til f.eks. SOAP er virkelig elendige. Så pas på med valget af udtryk.

Derudover så behøver jeg vel ikke sige mere hvis de bruger MySQL. Det er ikke en database som synes at skalere til det formål.
Gravatar #23 - jimmi
4. feb. 2010 13:28
ipwn (20) skrev:
Du skal kompile ved hver ændring det er sandt, men det er jo kun én gang. Der er jo ingen der sidder og koder på en live side anyways.


Come on, det er 100 gange lettere at skrive et scriptet sprog, end at skulle kompilere hver gang man »skal teste om det virker«. Der er en grund til at script-sprog er populære.

ipwn (20) skrev:
Desuden kræver C++ ikke nogen speciel opsætning. Det er maskinkode efter det er blevet kompileret.


Ingen servere tillader at du uden videre kan uploade noget random maskinkode og køre det. Det ville være lidt et sikkerhedsproblem.

ipwn (20) skrev:
PHP derimod kræver PHP fortolkeren.


Det er ikke ligefremt svært at finde en udbyder der har PHP installeret.

...

Læs evt. mere her...

So, what does HipHop PHP mean for the CodeIgniter community? In short, absolutely nothing.


http://www.michaelwales.com/2010/02/what-does-hiph...

http://www.brandonsavage.net/hiphop-for-php-who-be...

http://php100.wordpress.com/2010/02/03/hiphop/
Gravatar #24 - Montago.NET
4. feb. 2010 13:44
jimmi (23) skrev:
Come on, det er 100 gange lettere at skrive et scriptet sprog, end at skulle kompilere hver gang man »skal teste om det virker«. Der er en grund til at script-sprog er populære.



eller også har man vold-rådden computer som man koder C# på... :-D
Gravatar #25 - LupusGrey
4. feb. 2010 14:36
#24

Som også bliver fortolket, præcis ligesom Java gør. Vi har endda lavet en test på vores arbejde hvor vi prøvede JSP op imod PHP og vi bemærkede at PHP faktisk var hurtigere så længe vi kørte på den lille skala som vi gjorde.
Gravatar #26 - dummyddd
4. feb. 2010 14:48
#25
JVM fortolker kode blokke indtil de har taget et givent stykke processor tid, derefter kompileres det, baseret på statistik fra kørslen, hvilket forklarer hvorfor Java er dårligt til små ting (koden bliver aldrig kompileret). Så det er lidt vildledende at sige at Java er fortolket. Det er forresten også vildledende at sige at PHP er fortolket, da der eksisterer adskillige compilere til det.

Ontopic:
Gad godt vide hvilken compiler de bruger? Hvis de sidder og futter rundt med en Visual Studio compiler, burde de kunne få nogle meget større forbedringer ved at skifte til GCC, ICC eller en anden respektabel compiler.
Gravatar #27 - mathiass
4. feb. 2010 14:53
jimmi (19) skrev:
Bortset fra at man skal sidde og kompilere koden hver gang man ændrer det mindste, og iøvrigt skal have en dedikeret server med special opsætning for at køre det.
Sådan noget kan man sagtens automatisere. Det er for eksempel automatiseret i JSP som først compiles til Java og dernæst til JVM bytecode. Alt det sker automatisk under opstart og når filen ændres. Det kunne man sagtens gøre her også.

LupusGrey (25) skrev:
Som også bliver fortolket, præcis ligesom Java gør
C# er ikke fortolket på nøjagtig samme måde som Java ikke er det. Java skal kompileres manuelt. Bytecoden er i begge tilfælde JIT-kompileret med mindre det er hurtigere at fortolke.

LupusGrey (25) skrev:
Vi har endda lavet en test på vores arbejde hvor vi prøvede JSP op imod PHP og vi bemærkede at PHP faktisk var hurtigere så længe vi kørte på den lille skala som vi gjorde.
JSP er noget andet end Java og JSP er i bund og grund noget skrammel som ikke yder tilnærmelsesvist så godt som det burde.

dummyddd (26) skrev:
Det er forresten også vildledende at sige at PHP er fortolket, da der eksisterer adskillige compilere til det.
Dem implementation som folk sædvanligvis bruger er en fortolker.
Gravatar #28 - Windcape
4. feb. 2010 14:53
#25

C# bliver compileret til bytecode, så det er lidt tættere på det man i php kalder "op-code cache".
Gravatar #29 - arne_v
4. feb. 2010 14:55
dummyddd (26) skrev:
Gad godt vide hvilken compiler de bruger? Hvis de sidder og futter rundt med en Visual Studio compiler,


Hvis de bruger VS på Linux er de da super-cool !!
Gravatar #30 - ipwn
4. feb. 2010 15:07
dummyddd (26) skrev:
#25
Ontopic:
Gad godt vide hvilken compiler de bruger? Hvis de sidder og futter rundt med en Visual Studio compiler, burde de kunne få nogle meget større forbedringer ved at skifte til GCC, ICC eller en anden respektabel compiler.


De bruger g++ :) Det er jo bare en makefile og så ellers bare et enkelt kald. Alt er helt sikkert automatiseret, så deres programmører ikke skal andet end at smide deres PHP ind, og så ellers checke om alt kompilerede korrekt.
Gravatar #31 - ipwn
4. feb. 2010 15:10
Windcape (22) skrev:
Websider, Ja. Webservices, nej.

PHP's biblioteker til f.eks. SOAP er virkelig elendige. Så pas på med valget af udtryk.

Derudover så behøver jeg vel ikke sige mere hvis de bruger MySQL. Det er ikke en database som synes at skalere til det formål.


Ah ja du har ret. Websider så :)

Angående MySQL, er det altså ikke en decideret dårlig løsning. Andre så som Google og Wikipedia bruger det jo også. Så der er ikke rigtigt nogen tvivl om at det kan klare enorme systemer. (Flere)

Hvis de har specielle behov, kan de jo altid selv rette i MySQL's kildekode, og tilpasse det til deres specifikke server farm.
Gravatar #32 - Windcape
4. feb. 2010 15:13
ipwn (31) skrev:
Andre så som Google og Wikipedia bruger det jo også.
Wikipedia benytter i høj grad cache, end databaser.

Og Google bruger ikke MySQL, det er en vandrehistorie.

MySQL er generelt en dårlig performance database. Til en løsning some facebook ville Oracle eller DB2 være mere passende. Måske PgSQL fordi at PHP har ikke har ordenlige bindings til Oracle/DB2.

Men det er desværre et typisk valg for en løsning man aldrig forventer vil skalere.

ipwn (31) skrev:
Hvis de har specielle behov, kan de jo altid selv rette i MySQL's kildekode, og tilpasse det til deres specifikke server farm.
Den lader vi lige stå lidt.

De få folk der har kompetancer til det er typisk ansat hos et firma som udvikler databaser. Nej, at MySQL er open source har minimal betydning for dens business value.
Gravatar #33 - Windcape
4. feb. 2010 15:15
# Optimering af PHP:

OOP i PHP er langsomt, så man opnår den bedste performance ved at skrive kode der er nær unmaintainable.

Det siger vel lidt omkring valget af PHP som teknologi. Jeg synes helt klart at Python eller ASP.NET ville være et mere sikkert valg.

Rails afhænger 110% af om de har fixet deres skaleringsproblemer. Sidste jeg kiggede (2 år siden) skalerede rails endnu dårligere end PHP.
Gravatar #34 - myplacedk
4. feb. 2010 15:20
jimmi (23) skrev:
Come on, det er 100 gange lettere at skrive et scriptet sprog, end at skulle kompilere hver gang man »skal teste om det virker«. Der er en grund til at script-sprog er populære.

Det hører jeg tit. Jeg koder i mange ting, lige fra bash til Java, og jeg kan altså ikke se forskellen i praksis. Kod, gem, test. (Gem er fx. "CTRL-S" og test er fx. "ALT-TAB, F5".) Piece of cake.

Det er ved at være mange år siden at kompilering nødvendigvis betød ventetid.

jimmi (23) skrev:
Ingen servere tillader at du uden videre kan uploade noget random maskinkode og køre det. Det ville være lidt et sikkerhedsproblem.

Selvfølgelig tillader de alle sammen det. Hvordan ville du ellers installere og opdatere fortolkeren?
Og selv hvis det ikke skulle passe, så tillader man det naturligvis hvis man har behov for det.
Gravatar #35 - ipwn
4. feb. 2010 15:28
#32 Kilden jeg har angivet virker da til at være udmærket? Kan da fint være at de ikke bruger det til alle deres servicer, men så vidt jeg kan se bruger de det da?
Gravatar #36 - ipwn
4. feb. 2010 15:32
Windcape (32) skrev:

ipwn (31) skrev:
Hvis de har specielle behov, kan de jo altid selv rette i MySQL's kildekode, og tilpasse det til deres specifikke server farm.
Den lader vi lige stå lidt.

De få folk der har kompetancer til det er typisk ansat hos et firma som udvikler databaser. Nej, at MySQL er open source har minimal betydning for dens business value.


Fandt lige dette her.

Åbenbart så har de jo netop ændret på MySQL således at den passer med deres arkitektur. Kilden er dog gammel, men så vidt jeg ved bruger de stadig MySQL.
Gravatar #37 - Windcape
4. feb. 2010 16:52
myplacedk (34) skrev:
Det er ved at være mange år siden at kompilering nødvendigvis betød ventetid.
Not really, hotswap af kode i f.eks. GWT blev først implementeret i slutningen af 2009.

Men nu er Java også storsynderen når det kommer til langsom udvikling pga. kompilering. Afhænging af hvilken teknologi du vælger kan det nemt tage evigheder.
Gravatar #38 - arne_v
4. feb. 2010 17:32
#37

Java (og for den sags skyld også .NET) er noget af det som builder hurtigst.

Store C/C++ projekter med lidt gavmild brug af include filer kan tage lang tid at builde.

Jeg kan f.eks. godt huske den upgrade som reducerede total build af et bestemt system fra 24 til 8 timer.

Den slags kan mærkes.
Gravatar #39 - Windcape
4. feb. 2010 17:46
#38

Det er nok mere et spørgsmål om deployment. Jeg synes at ASP.NET+IIS , eller Apache+PHP/Python/Rails har en stor fordel i forhold til JEE og tunge applikationservere når det handler om udviklingshastighed.

Jeg mangler ihvertfald tålmodighed til at klare de 5-10 sekunder længere tid JEE kan være om at deploy og opdatere (hvis der ikke er cache bugs som f.eks. i defualt Tomcat).

Og for specielt PHP udviklere vil det føles utrolig langsomt at skulle arbejde med JEE.
Gravatar #40 - myplacedk
4. feb. 2010 18:05
Windcape (37) skrev:
Not really

Du kan nævne en milliard langsomme teknologier, uden det modargumenterer mit udsagn.

Og bash du bare Java, men gør det lige for dig selv. Det er lige præcist Java, som jeg ikke har ventet på i årevis, mens jeg sidder i min udvikl/test-cyklus.

#39
Af hensyn til dem som ikke har fulgt med: Jeg har fortalt dig MANGE gange, at man kan lave J2EE-udvikling uden at sidde og vente. Jeg skal altså være hurtig til at trykke CTRL-S, ALT-TAB og F5, for at nå den inden den er færdig med at compile.

Troll.
Gravatar #41 - Windcape
4. feb. 2010 18:16
#40

Det vil ikke nytte at argumentere mod dig alligevel. Du er blind og døv når det kommer til kritik af Java og JEE.

Troll.
Gravatar #42 - qed
4. feb. 2010 18:21
Windcape (41) skrev:
Du er blind og døv når det kommer til kritik af Java og JEE.

Var der ikke noget med at feje foran et glashus...?
Gravatar #43 - Windcape
4. feb. 2010 18:26
#42

Modsat til myplacedk har jeg faktisk arbejdet med de teknologier jeg beskriver (i længere perioder end 2 timers hobbyarbejde), og giver dem kritik ud fra mine personlige erfaringer.

myplacedk modsat, er typen som ikke vil arbejde med C# fordi han synes Microsoft er onde.

Jeg tvivler på han ville lægge mærke til om det er 5 eller 20 sekunder for at deploy noget kode. Jeg har mødt massere af den slags mennesker.

Forskellen er bare at han bliver personlig fornærmet hvis man ikke er enig med ham.
Gravatar #44 - myplacedk
4. feb. 2010 18:46
Windcape (43) skrev:
Modsat til myplacedk har jeg faktisk arbejdet med de teknologier jeg beskriver

Den er jeg lige nødt til at reagere på, du snakker jo som om du ved noget om det.

Jeg udtaler mig ud fra erfaringer her. Jeg lever af at arbejde med J2EE. Jeg lever af at rådgive folk, som lever af det. Jeg kender godt de problemer du snakker om, jeg lider bare ikke under dem. Jeg prøver at fortælle dig, at det er et problemer der kan løses, hvilket er bevist af at jeg ikke har dem.

Resten du siger er også noget pjat.
Gravatar #45 - Windcape
4. feb. 2010 19:00
myplacedk (44) skrev:
Jeg lever af at arbejde med J2EE.
Ja, det er jeg godt klar over!

Men hvad jeg siger at du ikke har nok erfaring til at kunne sammenligne det med de andre teknologier, og derfor skulle lade være med at brokke sig over at os som HAR arbejdet i årevis med .NET/PHP/etc. giver kritik af J2EE.
Gravatar #46 - myplacedk
4. feb. 2010 19:09
Windcape (45) skrev:
Men hvad jeg siger at du ikke har nok erfaring til at kunne sammenligne det med de andre teknologier,

Og hvis jeg så fortæller noget mere om mine kompetencer, retter du det så igen til "det er jeg godt klar over"?

Jeg stopper her for denne gang, uanset hvad du kommer med af løgne og lort.
Gravatar #47 - arne_v
7. feb. 2010 20:54
anazonda (2) skrev:
Jeg tror helt ærligt ikke at det er det der er problemet... Jeg mener, hvor mange brugere er det lige der er på facebook?

Men det er i orden hvis du kan kode facebook så det har et reduceret CPU forbrug, uden at skulle bruge diverse optimeringsværktøjer udover at renskrive koden.


Der er rigtigt mange brugere på FaceBook, men det er ikke umiddelbart indlysende at problemet ligger i PHP eksekveringen.

Normalt regner man med at fortolkningsoverheadet for P'erne ikke er signifikant for en wep app.

Men FaceBook har forhåbentligt målt på performance og konstateret at de har en flaskehals i PHP eksekveringen.

Måske bruger de mere PEAR og mindre PECL end mange andre web sites.

Måske bruger de PHP, hvor de burde bruget noget andet, men har så valgt at fortsætte med PHP men bruge denne model, fordi det er nemmere med kun et sprog.
Gravatar #48 - arne_v
7. feb. 2010 20:56
mathiass (4) skrev:
Det er 50% hurtigere på det samme kode. PHP er baseret på en ret ueffektiv fortolker, så der er meget at vinde ved at forbedre det. Projektet compiler fra PHP kode til C++ kode og herefter køres den genererede C++ kode igennem en almindelig compiler med alt hvad det giver af optimeringer. Det er nok muligt at skære endnu mere af køretiden.


Nu synes jeg at de 50% er an af de mere mystiske detaljer.

Det er absolut ikke normalt at 50% af CPU tiden bruges på at fortolke PHP i en web app.
Gravatar #49 - arne_v
7. feb. 2010 20:59
Windcape (13) skrev:
Det er volsomt typisk at PHP løsninger bliver lavet uden overordnet arkitektur, eller fokus på performance, og så først senere når projektet er for stort til at du kan kode det om, bliver optimeret ved hjælp af f.eks. opcode cache, eller løsninger som denne her.


Der laves millioner af private hjemmesider og hjemmesider for små firmaer efter de principper.

Men et site som FaceBook har altså noget mere styr på deres ting. Ellers ville sitet slet ikke virke med den load.

Gravatar #50 - arne_v
7. feb. 2010 21:02
Windcape (17) skrev:
Man kunne også vudere om det overhovedet er værd at bruge PHP som teknologi hvis man kan optimere hastigheden med 50%.


Ja.

Hvis det var generelt med en sådan forbedring.

Men det er næppe tilfældet.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login