Avatar billede stringbuffer Nybegynder
25. september 2002 - 15:26 Der er 8 kommentarer og
1 løsning

PHP4 vs. CGI

Jeg har nogle PHP-sider, der både bruger MySQL-server adgang, og php-include til behandling af template-filer.
PHP er kompileret ind i Apache.

Hvordan kan PHP-løsningen sammenlignes med en tilsvarende CGI-program løsning med hensyn til hvor mange der vil kunne køres pr. tidsenhed?

Jeg ved at CGI-programmer bliver startet op som en ny proces ved hvert kald, og derfor har en betydelig overhead forbundet med selve opstart. PHP4 kører sammen med web-serveren, men den skal jo først oversætte hele PHP-koden før den kan køre den, så det er vel heller ikke specielt hurtigt?

Hvad skal man vælge når ydeevnen er af afgørende betydning?

Der skal bruges Linux som platform.
Avatar billede jakoba Nybegynder
25. september 2002 - 15:52 #1
CGI er faktisk ikke et programsprog. Der er det interface der benyttes på serveren imellen http og hvafor et programmodul der nu aktiveres igennem CGI

programmeringssproget kan så være perl eller C eller C++ eller Java eller hvad pokker du vil.

så den administration du nævner er kun en af flere faktorer. og som regel betyder det valgte sprog langt mere.

fortolkede sprog som perl og Php er plørelangsomme.
C og C++ er tindrende hurtige.
og java ligger et sted imellem.

jo større program der aktiveres og udføres jo mere betydning har programmeringssproget. Og omvendt hvis hvert kald ikke skal udføre ret meget kode, kan administrationen komme til at betyde så forholdsvis meget at php er den hurtigste løsning.
Avatar billede stringbuffer Nybegynder
25. september 2002 - 16:57 #2
Jeg ved udmærket godt hvad CGI er, når jeg skriver CGI-programmer så mener jeg (logisk nok) PROGRAMMER (ikke scripts), der bruger dette interface.
Avatar billede stringbuffer Nybegynder
25. september 2002 - 17:08 #3
Programmet eller PHP-scriptet skal normalt udføre følgende trin for den opgave, jeg skal løse:

0. Finde input værdier fra POST eller GET
1. Initialisere databaseforbindelse
2. Udføre et eller flere SQL-forespørgsler gennem MySQL-API
3. Indlæse template-fil med indhold, der skal udskrives og foretage en scanning/parsning af den til intern repræsentation
4. Behandle indholdet i template-filen, f.eks. erstatte bestemte variable felter med værdier, gentage dele af indholdet (f.eks. en række data) med forskelligt indhold hver gang osv.
5. Udskrive indholdet fra template'en til stdout, en socket eller en fil

desuden skal der nok foretages en eller anden form for authorization, måske gennem cookies (i PHP er det jo bare session-funktioner, der bruges)
Avatar billede stringbuffer Nybegynder
25. september 2002 - 17:10 #4
Og som du sikkert ved er C og C++ de ENESTE RIGTIGE programmeringssprog

/* gad vide hvor mange er villige til at stene mig for den udtalelse ]:-] */
Avatar billede jakoba Nybegynder
25. september 2002 - 17:29 #5
Med så stort et program ville jeg så stemme for din  CGI sammen med C løsning. php vil bruge en hel del tid på punkterne 3..5

punkt 1 og 2 vil vistnok være nogenlunde det samme. men det vil samtidig være en væsentlig del af den samlede eksekveringstid. Før noget andet ville jeg kikke efter om jeg måske kunne minske antallet af SQL kald (de koster rigtig meget tid)

mvh JakobA
Avatar billede jakoba Nybegynder
25. september 2002 - 17:35 #6
Næe du. maskinkode, det ved man hvad er. og hurtigere programmer kan der ikke skrives :-)
Avatar billede stringbuffer Nybegynder
25. september 2002 - 20:36 #7
du har nok ret... men hvis det bare skal have den mindste mulighed for portabilitet så må man have fat i C eller C++ ...medmindre C-- bliver en standard (http://www.cminusminus.org/)
Avatar billede stringbuffer Nybegynder
25. september 2002 - 20:39 #8
Mindske antallet af SQL-kald... tjah.. for MySQl er problemet jo lidt at den ikke understøtter indlejrede selects, så man kan blive nødt til at lave flere... til gengæld kan man lave nogle rimelig hurtige inserts hvis man ikke har brug for at data bliver tilgængelige med det samme. MySQL's INSERT DELAYED har virkelig en betydning når mange inserts skal foretages.
Avatar billede stringbuffer Nybegynder
24. november 2002 - 13:10 #9
Mon folk kun kigger i nye spg?
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
Kurser inden for grundlæggende programmering

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