I did say that it was a little off-topic, but the point is that certain macros must make a trip over the network to populate. Ruud tries to optimize by populating all the macros that would make the trip when the first macro is called and that is what I call the prefetch. He does the same thing with macros that do not make a network trip but those are populated at the start of the script regardless of whether a macro is called or not.
What is not entirely clear is whether a macro call the makes a network trip will also prefetch what InGroup() need to make a trip for or not. I have in the past run tests over a dialup link on all the macros to see which ones cause a network trip but I have misplaced the results. At the time, I was trying to optimize a script for dialup users and wanted to know what macros and functions I should avoid to minimize network trips.
If anyone wants to run those sort of tests, there are two ways to do it. One would be to run a network trace, and the other would be trial and error of macros and functions in various combinations over a dialup line, timing the results each time.
_________________________
Give a man a fish and he will be back for more. Slap him with a fish and he will go away forever.