Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Question about static vs global variables

Author: Gareth McCaughan

Date: 03:58:49 10/27/01

Go up one level in this thread


Frank Phillips wrote:

> Are there any issues associated with time?  Presumably at runtime
> storage has to be created for local variables in a recursive function,
> such as ABSearch(), and then destroyed; whereas it has to be created
> only at initialisation for globals.

No, it's basically free. A recursive function call
(actually, almost any function call) will involve
making some space on the stack to store things; local
variables just get some space there. The only "creation"
needed is adding a slightly larger number to the stack
pointer. <pedant>Which, I suppose, may mean a very
slightly larger number of page faults and slightly
worse cache performance, but so will the extra space
needed by globals *all* the time.</pedant>

You don't avoid the overhead of creating a stack frame
(i.e., that space on the stack for storing things) even
if your function uses no local variables, by the way.
There will still be things that need to be stored.
<pedant>Unless your function is simple enough that
the compiler can inline it, or something like that.</pedant>

--
g



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.