Avatar billede jl4511 Nybegynder
28. maj 2008 - 14:52 Der er 19 kommentarer og
1 løsning

DEFINE vs. VARS, hvad er forskellen?

Hej

Spørgsmålet går på om der er forskel på memory-load, hvis man bruger DEFINE istedet for Variabler.
Er det ene bedre end det andet, set ud fra et perfomance synspunkt?
Avatar billede jakobdo Ekspert
28. maj 2008 - 15:22 #1
DEFINE bruges når man vil sikre en "variabel" ikke kan ændres igennem systemet.
Avatar billede jl4511 Nybegynder
28. maj 2008 - 15:27 #2
Yes, jeg er med på at DEFINE er en konstant, men spørgsmålet er, om det ene er bedre end det andet perfomance-mæssigt?
Avatar billede olebole Juniormester
28. maj 2008 - 17:25 #3
<ole>

Jeg tvivler på, der er væsentlig forskel ... test  ;o)

/mvh
</bole>
Avatar billede jl4511 Nybegynder
28. maj 2008 - 17:43 #4
Det ved jeg ikke lige hvordan jeg måler? :o)
Avatar billede jakobdo Ekspert
28. maj 2008 - 21:07 #5
Brug variabler og lav en test med noget kode som afvikles 1mio gange.
Inden du starter tager du en start tid med microtime() og når koden er slut tager du en slut tid.

Du gør så det samme med DEFINE og sammenligner.
Avatar billede coderdk Praktikant
28. maj 2008 - 21:21 #6
defines er også globale, så de kan bruges inde i forskellige klasser og funktioner, det kan du ikke med vars (med mindre du i klassen/funktionen erklærer dem global)...
Avatar billede jl4511 Nybegynder
28. maj 2008 - 22:27 #7
Jeg tror jeg lukker her.
Det jeg var ude efter, var om den ene var mere memory-krævende end den anden. Ikke så meget om den ene kørte et par micro-sekunder hurtigere end den anden.
De der ønsker point må gerne lægge (ja, med Æ) et svar :o)

Tak for deltagelse.
Avatar billede jakobdo Ekspert
28. maj 2008 - 22:41 #8
Hvorfor skriver du lægge (ja, med Æ) ?
Lægge kan vel ikke staves anderledes ?
Avatar billede jakobdo Ekspert
28. maj 2008 - 22:41 #9
Og ang. point, jeg springer over.
Avatar billede jl4511 Nybegynder
28. maj 2008 - 22:48 #10
Fordi jeg 9 ud af 10 gange ser "lægge" stavet som "ligge" :o)

ok, du slipper så.... er der andre?
Avatar billede coderdk Praktikant
28. maj 2008 - 22:55 #11
Ellers tak ;P
Avatar billede olebole Juniormester
28. maj 2008 - 22:57 #12
Nu er der som oftest vældig god sammenhæng mellem eksekveringstid og hukommelsesforbrug, så jeg forstår ikke rigtig din sondring  =)
Avatar billede jl4511 Nybegynder
28. maj 2008 - 22:59 #13
olebole -> Ja, det har du vel egentlig ret i.
Jeg prøver at fyre en million-test af og ser hvad der sker.
Holder den åben en dag eller to endnu, og vender tilbage med resultatet af testen.
Avatar billede olebole Juniormester
28. maj 2008 - 23:07 #14
Husk, at lave forskellige test. Én metode kan godt være hurtigere end en anden i ét scenarium ... mens det forholder sig stik modsat i et andet  ;o)
Avatar billede jakobdo Ekspert
29. maj 2008 - 06:50 #15
Og det olebole igen mener (tror jeg) er at du f.eks. bør teste med kort tekst, lang tekst, tal og lign forskellige scenatier. (har jeg ret olebole?)
Avatar billede jl4511 Nybegynder
29. maj 2008 - 14:19 #16
Jeg har kørt lidt indledende test's - men tror ikke jeg vil kaste mere tid i det.
De test viste ingen nævneværdig forskel.

Jeg takker for jeres input - det er altid rart at få vendt nogle ting med kompetente folk, når man ellers sidder i sin egen lille verden :o)

Jeg deler med glæde ud af de 30 point til dem der måtte ønske det.
Hvis ingen har meldt sig på banen, når weekenden er overstået, lukker jeg spørgsmålet.

Takker :o)
Avatar billede olebole Juniormester
29. maj 2008 - 23:00 #17
jl4511 >> Ellers tak. Du har selv lavet arbejdet, så jeg springer over denne gang  =)

jakobdo >> Jo, det var præcis det, jeg mente - tak for tiltrængt præcisering  ;o)
Avatar billede jakobdo Ekspert
30. maj 2008 - 07:03 #18
jl4511: Jeg springer over.
olebole: Ingen årsag! :o)
Avatar billede jl4511 Nybegynder
30. maj 2008 - 09:05 #19
Lukker og slukker :-)
Avatar billede arne_v Ekspert
31. maj 2008 - 23:14 #20
Hele ideen er forkert.

Man vælger mellem var og const udfra hvad der giver bedst mening.

Hvis der var en forskel i performance ville den være meget lille.

Et par kendte citater:

More computing sins are committed in the name of efficiency (without necessarily achieving it) than for any other single reason - including blind stupidity.

The First Rule of Program Optimization: Don't do it. The Second Rule of Program Optimization (for experts only!): Don't do it yet.

Jeg har iøvrigt aldrig forstået hvorfor define er så lidt brugt blandt PHP programmører.
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