How long is "a long time"?
How many resources are mapped?
How many external scripts are run?
Do you run scripts that rely on resources before they are mapped?
Do you call batch files to perform tasks that can be done natively in Kix?
How do you process group and OU logic? Are you doing it repeatedly, or just making the decisions once?

Goto's won't generally affect performance, but make the code hard to follow and support. You can get rid of goto by, for example:
 Code:
; only run the win98 code for older systems, then exit
If @DOS = '4.10'
  Call 'win98.kix'
  Exit 0
EndIf


My login script (on my web site) is so tightly optimized that I need to make it wait so the user can verify that it ran. It processes about 30 resources and runs 3 external commands in under 4 seconds, including all of the group and ou-specific mapping logic. On the WAN, it takes about 9 seconds to run. Clearly, anything more than 15-20 seconds indicates that there is room for optimization.

Glenn
_________________________
Actually I am a Rocket Scientist! \:D