sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #13833
RE: Mozilla
Hov, her snakker I vist om to forskellige ting: Debug information, og debug
kode. Debug info er ganske rigtig irrelevant for run-time performance, men
debug kode kan bestemt paavirke eksekveringstiden.
Et typisk eksempel paa debug kode er test af parametre til funktioner, a la:
void foo(int n)
{
assert(n >= 0); /* kraev at n er >= 0 */
/* alternativt: */
#ifndef NDEBUG
if (n < 0) {
fprintf(stderr, "Hovsa! n<0 i foo()\n");
return;
}
#endif
/*... goer ting og sager med n ...*/
}
Pointen er at hvis man kompilerer med symbolet NDEBUG (No DEBUGging) saa
bliver hverken assert() makroen eller #ifndef...#endif kompileret med ind,
hvorved man sparer plads og tid.
Altsaa:
Med debug info, debug kode: gcc -g file.c
Uden info, med debug kode: gcc file.c
Uden info, uden debug kode: gcc -DNDEBUG file.c
Med info, uden debug kode: gcc -g -DNDEBUG file.c
/Martin.
-----Original Message-----
From: Morten Bo Johansen [mailto:mojo@xxxxxxxx]
Sent: Wednesday, September 29, 1999 5:16 PM
To: sslug-teknik@xxxxxxxx
Subject: Re: [TEKNIK] Mozilla
Quoting Kristian Vilmann <kristian@xxxxxxxx>:
> >Det eneste der gik mig på var den tid det
> >tog Mozilla at parse en side...jeg ved ikke om det var parseren, eller
> >noget helt andet...men selv simple html sider tog alt for lang tid
>
> Et skud i tågen: Er det ikke fordi den er kompileret med
> debug-information?
Vi havde netop en diskussion om dette på flug-teknik, og det
blev nævnt, at debug-informationen gemmes i en særlig sektion
af objekt-filen, og denne sektion bliver ikke indlæst, når
programmet kører - og derfor skulle programmet ikke køre langsommere
af den grund. Der er derfor ingen særlig grund til at strippe
sine programmer medmindre man mangler plads på sin HD.
vh.
Morten