mboost-dp1
PHP includes
- Forside
- ⟨
- Forum
- ⟨
- Programmering
Bliver ens side langsommere, af at man inkluderer funktioner, man ikke har brug for. Jeg spørger fordi jeg er i tvivl om den smarteste måde at holde styr på mine mange funktioner. Kan jeg blot inkluderer mine basis-funcs i alle mine scripts uden at miste performance?
gi-jones
Umiddelbart nej, men hvis du skal til at skrive et 1337-mega site med en million-milliard funktioner ville det nok være en fordel at skabe et vist overblik over hvad der skal bruges hvor. PHP skal parse alle linjerne for scriptet kan udføres, så hvis du /bare/ skal opdatere en syv, otte rækker i en database er det nok ikke nødvendigt at inkludere hele dit funktions library.
En effektiv måde er forresten at bruge require_once (hvis du er dovn, eller bare mister overblikket), for så loader php rent faktisk kun scriptet én gang (som navnet sjovt nok antyder).
En opdeling i filer giver dig også størrere kontrol over dit script, da det er lettere at gennemskue 20 filer med to funktioner end en fil med 40 funktioner. Faktisk forsøger jeg at holde mine funktioner grupperet i filer (al database connectivity i en fil, manipulation i en eller flere osv.) da du så let kan se hvilke dependecies en del af scriptet har.
Der ud over har jeg også normalt en loader-funktion, hvor jeg blot indsætter navnet på scriptet, og funktionen loader så filen og, hvis det ønskes, tjekker at versionen af den loadede fil er den korrekte. Men det er mest hvis man roder (som jeg gør).
Umiddelbart nej, men hvis du skal til at skrive et 1337-mega site med en million-milliard funktioner ville det nok være en fordel at skabe et vist overblik over hvad der skal bruges hvor. PHP skal parse alle linjerne for scriptet kan udføres, så hvis du /bare/ skal opdatere en syv, otte rækker i en database er det nok ikke nødvendigt at inkludere hele dit funktions library.
En effektiv måde er forresten at bruge require_once (hvis du er dovn, eller bare mister overblikket), for så loader php rent faktisk kun scriptet én gang (som navnet sjovt nok antyder).
En opdeling i filer giver dig også størrere kontrol over dit script, da det er lettere at gennemskue 20 filer med to funktioner end en fil med 40 funktioner. Faktisk forsøger jeg at holde mine funktioner grupperet i filer (al database connectivity i en fil, manipulation i en eller flere osv.) da du så let kan se hvilke dependecies en del af scriptet har.
Der ud over har jeg også normalt en loader-funktion, hvor jeg blot indsætter navnet på scriptet, og funktionen loader så filen og, hvis det ønskes, tjekker at versionen af den loadede fil er den korrekte. Men det er mest hvis man roder (som jeg gør).
#1 i princippet, ja. hver gang dit script bliver kaldt, skal alt hvad der inkluderes, først parses og derefter kompileres.
men det er millisekunder det drejer sig om i værste fald. og hvis det endelig er, kan man smide noget sjov på serveren, som sørger for at compile alle scripts så de er klar til at blive udført noget hurtigere...
men det er millisekunder det drejer sig om i værste fald. og hvis det endelig er, kan man smide noget sjov på serveren, som sørger for at compile alle scripts så de er klar til at blive udført noget hurtigere...
#7 Hvad prom nok mener, er at PHP scripting som udgangspunkt ikke kompileres men istedet fortolkes. Visse produkter tilføjer så et caching-lag af kompilerede segmenter, disse incl. den kommercielle Zend engine og den gratis klon PHP-accelerator.
#7 Njah, du har lidt ret - men det jeg synes er smart ved Smarty er at den cacher sider, så din side - (hvis man udnytter systemet ordentligt) - bliver hurtigere. Jeg har heller ikke prøvet Zend motoren, da jeg simpelthen er for nærig til at købe et produkt jeg ikke aner er godt eller skidt. :-)
#8 Hvilke erfaringer har du med hhv. Zend motoren og PHP-accelerator? Jeg har endnu ikke prøvet nogle af dem, men hvis Zends engine er uovertruffen, så vil jeg da overveje at købe den. :-)
#8 Hvilke erfaringer har du med hhv. Zend motoren og PHP-accelerator? Jeg har endnu ikke prøvet nogle af dem, men hvis Zends engine er uovertruffen, så vil jeg da overveje at købe den. :-)
#9 Jeg har kun prøvet PHP-A og ofte opnås en fordobling i performance, især algoritmer kan man se det på. Så vidt jeg ved, performer Zend engine en smule bedre end PHP-A (muligvis fordi den forsøger at optimere PHP-koden og ikke blot cache kompileringen).
Smarty er forøvrigt ikke just kendt for at forbedre performance, tilføjer jo ekstra abstraktionslag.
Smarty er forøvrigt ikke just kendt for at forbedre performance, tilføjer jo ekstra abstraktionslag.
#8 Det er rigtigt at PHP scripts i første omgang fortolkes, men derefter bliver de på én eller anden måde omsat til de instruktioner som CPUen så udfører. Derfor synes jeg godt det kan give mening at sige, at man kompilerer sine scripts til noget maskinafhængig binær kode, eller i det mindste bytecode som i Java (i Java kalder man det jo også compile og build selv om resultatet er intermediate code og ikke binary code)
#11 Om scripting fortolkes eller compiles afgøres normalt af bindingen, i JavaScript kan du f.eks. køre en eval() og smække hvad som helt ind, som så fortolkes under "late-binding". Dette kan man så ikke i Java som kompileres til bytekode under "early-binding".
Det samme gør sig gældende med SQL, som så tilbyder "stored procedures" som allerede er parsede, optimerede og kompilerede. PHP-accelerator er således for PHP, hvad "stored procedures" er for SQL.
Det samme gør sig gældende med SQL, som så tilbyder "stored procedures" som allerede er parsede, optimerede og kompilerede. PHP-accelerator er således for PHP, hvad "stored procedures" er for SQL.
#13 Jo, Zend encoder og Zend optimizer, men encoderen koster knapper! Ved ikke rigtig hvad status er med Zend cache, Zend Performance Suite og alle de andre lignende produktnavne Zend finder på.
#13 Der er jo http://www.php-compiler.net/ som kompiler PHP->.Net .. hvis du så holder dig fra Windows Forms, så kan du sikkert køre det via Mono også
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.