Avatar billede shjorth Nybegynder
18. juni 2009 - 04:21 Der er 2 kommentarer og
2 løsninger

php print eller ren html

Hej.

Jeg har en side, som efterhånden har en hel del trafik, og i den forbindelse er jeg begyndt at tænke lidt på hastighed.

På mange af mine scripts har jeg haft for vane at bruge print("<table>..."); hvor jeg ligeså godt kunne have brugt: ?> <table>...<?.
Mit spørgsmål er så det på nogen måde kan sløve min side at jeg kører det med print frem for blot at køre det i html :-)

Håber der er nogen der kan svare.

ps: Jeg har læst mig til at echo er et kussehår hurtigere end print, så om ikke andet må næste skridt være at bruge den funktion istedet.

Mange tak for hjælpen
Avatar billede mrgumble Nybegynder
18. juni 2009 - 08:57 #1
Eftersom kønsbehåring er noget tykkere end almindeligt hår, mon ikke du så skulle bruge echo i stedet for? ;-) Men hvor meget ved jeg altså ikke.

Jeg søgte lidt på "php speed echo print" og fandt et par gode sider. Du får et par stykker:
http://foliovision.com/2007/11/07/phpp-speed-security-code-optimization/
http://www.learnphponline.com/php-basics/php-echo-vs-print
http://ezinearticles.com/?The-Difference-Between-PHP-Echo-and-Print&id=1457800

Førstnævnte artikel har også andre tips til optimering.

Derudover kan du også tjekke forskellen på anvendelsen af " (gåseøjne) og ' (apostrof). Strenge angivet med gåseøjne bliver fortolket af php, dvs. der tjekkes om den indeholder variabler el.lign. Derimod bliver strenge angivet med apostrof ikke fortolket. Det giver en anden lille forøgelse af hastigheden.


Det er svært at sige om du skal gøre det ene eller andet, så jeg vil anbefale dig at prøve efter. Og så skal du starte scriptet med "$start = microtime(true);" og slutte scriptet med "echo 'Tidsforbrug: ', (microtime(true) - $start);"
Avatar billede g1mzee Nybegynder
18. juni 2009 - 10:09 #2
hej..
Mhh, jeg vil da umildbart ikke tro at det er på din echo / print front du skal lave ændringerne hvis det er. måske se om der er noget unødvenigt som man ville få det samme resultat uden, self skal det ikke være med sikkerhedsmæssige ting, men måske noget mysql kald, som kunne gøres smartere eller mindre.
Nu ved jeg ikke hvordan din kode ser ud, men jeg gør nogen gange den at jeg laver en "SELECT * FROM ... "
Når det måske ville være smartere at lave en "SELECT id, email FROM ..."..
Hvis du kan følge mig :)
Avatar billede repox Seniormester
18. juni 2009 - 10:54 #3
Det er hverken echo eller print du skal tænke på i den sammenhæng.
Du skal være opmærksom på den tid det tager at generere det output du sender ud via echo/print.

Langsomme SQL forespørgsler, store loops, webservices og så videre.
Du kan med fordel lave en cached udgave af de filer som generer tungt indhold.
Avatar billede ebusiness Nybegynder
18. juni 2009 - 17:15 #4
Jeg er selv lidt af en optimeringsnazi, så min egen hjemmeside bruger et stykke PHP som gemmer statiske sider på serveren, på den måde har jeg automatisk genereret menu osv, uden at det koster noget når folk henter siden.

SQL er lidt af en hvepserede, på den ene side er der et pænt stort overhead for hver forespørgsel som gør at det kan være smart at lave få forespørgsler som henter meget data frem for flere simplere, på den anden side kommer man let til at lave forespørgsler som ikke kan optimeres ordentligt og derfor tvinger databasen til at gennemgå samtlige rækker.

Optimalt skal databasestrukturen være sådan at du aldrig har brug for andet end at vælge rækker ud fra simple "lig med" betingelser, og der skal så selvfølgelig forefindes indekseringer på netop de betingelseskombinationer som bruges.

JavaScript kan i øvrigt bruges til at nedbringe fil størrelserne, de fleste vil vælge løsningen fra for at servicere brugere som ikke har JavaScript slået til og please søgemaskiner, men det er en mulighed at sende data på en mere rå kompakt form og så få et script til at stille det pænt op i HTML.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester