← Back to team overview

sslug-teknik team mailing list archive

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