Svish Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 (endret) Lager et CMS, og kom på at jeg kanskje burde tenke litt på om koden min tar lang tid å kjøre. Men kom på at jeg vel egentlig ikke har peiling på hva som er normalt.. så hva er normalt? brukte PHP <?php/** * Simple function to replicate PHP 5 behaviour */ function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } $time_start = microtime_float(); // Sleep for a while usleep(100); $time_end = microtime_float(); $time = $time_end - $time_start; echo "Did nothing in $time seconds "; ?> fra php manualen (butta ut usleep(100) med cmsskriptet da ). så skriver ut tiden det tok fra første fil til siste. og ligger nå på rundt 0.02 - 0.04 sekunder. er dette lite? er det mye? trooor ikke koden min skal være spesielt tung, men vet jo ikke.. antar det er sql spørringer som kanskje er det som tar mest tid egentlig? er det tungt å gjøre flere spørringer i samme script liksom? tar spørringer mye tid? eller er det i hovedsak det å koble seg til databasen som tar tid? så når man først er koblet til så har det ikke så mye å si lengre? eller? (beklager brudd på tre-ord-regelen!) Endret 8. mars 2007 av Tussi_qwerty Lenke til kommentar
Runar Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 Jeg vil ikke påstå at 0.04 sekunder er mye. Kanskje for noen få personer, men det er ikke mange som syns at en side som bruker 0.04 sekunder på å laste inn er treig. Lenke til kommentar
oxodesign Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 Det varierer veldig mye. Det finnes ikke noe svar men en ting må du huske når du jobber med store prosjekter: Jo kortere kjøre tida er på et skript jo bedre. Lenke til kommentar
Svish Skrevet 7. mars 2007 Forfatter Del Skrevet 7. mars 2007 med tanke på ytelse: Bør en bruke mysql_unbuffered_query når en ikke trenger å finne num_rows eller sånt, siden en uansett skal sprute ut alt en får? Går det fortere? Trenger man å mysql_free_results? Eller erstattes de uansett neste gang en kjører en ny query? Lenke til kommentar
Beethoven Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 Sånt varierer svært mye fra host til host. Lenke til kommentar
Svish Skrevet 7. mars 2007 Forfatter Del Skrevet 7. mars 2007 hvilken av de? eller begge? Lenke til kommentar
-morten Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 Med mindre du planlegger å få hundrevis av besøkende samtidig, så er vel ikke 0.04 sekunder spesielt mye. mysql_free_result() trenger du neppe å bruke. Poenget med den funksjonen er å frigi minne som har vært brukt til å lagre sql-radene med en gang de ikke trengs lenger. Men hos deg avslutter scriptet et hundredelssekund senere, og da frigis all minnet scriptet brukte uansett. mysql_unbuffered_query() har noen fordeler, blant annet en potensiell hastighetsøkning, men også noen ulemper. Du kan jo lese på php.net/mysql_unbuffered_query selv. Sannsynlivis ikke noe du trenger å bry deg om det heller. Lenke til kommentar
Svish Skrevet 7. mars 2007 Forfatter Del Skrevet 7. mars 2007 (endret) ja, har lest i phpmanualen. men er ikke helt sikker på om jeg forstår hva dem mener mysql_unbuffered_query() sends a SQL query query to MySQL, without fetching and buffering the result rows automatically, as mysql_query() does. On the one hand, this saves a considerable amount of memory with SQL queries that produce large result sets. On the other hand, you can start working on the result set immediately after the first row has been retrieved: you don't have to wait until the complete SQL query has been performed. hva mener dem med den minne bufringa? hva er det som buffres hvor liksom? i mitt hode så skjer dette med mysql_query(): du sender spørring mysql finner alle radene og putter dem i en svær pakke pakken sendes til deg du får pakken og kan jobbe med den og i mysql_unbuffered_query(): du sender spørring mysql finner rader og dytter dem ut ettersom den finner dem du kan jobbe med radene ettersom de dumper inn til det ikke er flere igjen ... er jeg helt på jordet? hvor kommer bufringa inn i bildet? er det på mysql serveren det skjer, eller i php? Endret 7. mars 2007 av Tussi_qwerty Lenke til kommentar
genstian Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 Er riktig det. Buffringen skjer så vidt jeg husker på SQL serveren. Lenke til kommentar
Svish Skrevet 7. mars 2007 Forfatter Del Skrevet 7. mars 2007 da skjønner jeg ikke helt hvordan denne buffringen skal spare på minnet... for å være ærlig, hehe. må da være mer minnebesparende å dytte ut ting ettersom du får dem, og å ta dem unna ettersom de kommer? Lenke til kommentar
-morten Skrevet 7. mars 2007 Del Skrevet 7. mars 2007 Buffringa sparer jo ikke minne. Funksjonen som heter mysql_unbuffered_query sparer minne, siden den dytter ut etterhvert. Lenke til kommentar
Svish Skrevet 7. mars 2007 Forfatter Del Skrevet 7. mars 2007 såh.. de "on the one hand" og "on the other hand" er to ting som er bra med unbuffered query, og ikke en ting som er bra med query og en med unbuffered slik jeg har trodd til nå? Lenke til kommentar
-morten Skrevet 8. mars 2007 Del Skrevet 8. mars 2007 såh.. de "on the one hand" og "on the other hand" er to ting som er bra med unbuffered query, og ikke en ting som er bra med query og en med unbuffered slik jeg har trodd til nå?8104328[/snapback] Ja. Er litt dårlig språk. Som regel er jo "the other hand" en negativ ting. Lenke til kommentar
Svish Skrevet 8. mars 2007 Forfatter Del Skrevet 8. mars 2007 *spent om det funker å svare her...* men da er det jo greit takk for hjelpen! (hva er det som skjer med forumet?!?) Lenke til kommentar
Svish Skrevet 8. mars 2007 Forfatter Del Skrevet 8. mars 2007 ikke værst. Siden jeg har skrekkelig lyst til å få lagt til spørsmålet mitt angående BBCodes, så putter jeg det her! funker jo ikke å legge til nye emner. Dvs.. de kommer opp med emne i lista, men uten innhold :S what is up with this system?? --------------------------------------------------------- Hvordan lage BBCodesaker og vi prøver igjen!! Beklager alle de tomme emnene, men hvordan skulle jeg kunne vite at den la inn tomme emner i bakgrunnen når den til meg sa det var tekniske problemer og at jeg skulle prøve igjen senere kanskje?? Prøvde igjen senere flere ganger, og da jeg omsider gikk ut var det jo et lass av dem der.. og uten innlegget faktisk men men!! fikk et lite svar i en av dem, før den ble låst sammen med de andre: poenget var ikke lister over bbcode, eller hvordan å bruke det her, men hvordan å implementere det selv med php. har brukt en liten kodesnutt jeg fant på wikipedia til å lage en enkel versjon i mitt lille cms: <?php function bbcode2html($strInput) { return preg_replace( array( '/\\[url[\\:\\=]((\\"([\\W]*javascript\:[^\\"]*)?([^\\"]*)\\")|'. '(([\\W]*javascript\:[^\\]]*)?([^\\]]*)))\\]/ie', '/\\[\\/url\\]/i', '/\\[b\\]/i', '/\\[\/b\\]/i', '/\\[i\\]/i', '/\\[\/i\\]/i', '/\\ /i', '/\\[\/quote\\]/i' ), array( '\'<a href="\'.(\'$4\'?\'$4\':\'$7\').\'">\'', '</a>', '<b>', '</b>', '<i>', '</i>', '<blockquote>', '</blockquote>' ), $strInput ); } ?> har utvidet den litt, men lurer på et par ting. 1. hvordan man kan få til sånn som de har her med ]liste[ ]*[ ting ]*[ ting til ]/liste[ ? kunne brukt ]ul[ og ]li[ ]/li[ ]ul[ selvfølgelig.. men er nysgjerrig!! 2. er det noen grei måte å sikre at alle bbcode tagsene er lukket? sånn at de ikke messer opp resten av siden dersom de mangler en slutt? den jeg har brukt der erstatter jo åpning og slutt hver for seg liksom.. 3. hvordan henter dem ut urlen i det scriptet ovenfor? hvis jeg fatta det kunne jeg jo istedet for å erstatte de tagsene hver for seg, erstatte ]b[noetekst]b[ med <b>noe tekst</b>, men hvordan overfører jeg den "noe tekst" liksom? vet det har noe med capturing groups å gjøre. men fatter ikke helt hvordan å bruke dem. spesielt ikke i denne preg_replace funksjonen... vet det er noe som heter named capturing groups også. mulig å bruke det her istedet for å måtte telle parenteser for å finne riktig liksom? Lenke til kommentar
Svish Skrevet 8. mars 2007 Forfatter Del Skrevet 8. mars 2007 ser ut som det er bbcode den klikker på... ironisk nok, haha Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå