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.