Hello Anthony,This might be because you are calling many modules that must be loaded the first time you run a Python script (as discussed in Section 6.1.3 on this page from Python.org.) The longer load-up on the first run is actually generating a compiled PYC file to make it easier and faster to load up data the second time.I ran the following code on my computer, to demonstrate:import arcpy
import timeit
arcpy.env.overwriteOutput = True
rrn = r'C:\xxx\RRN_Line.shp'
osm = r'C:\xxx\OSM_Line.shp'
rrn_layer, osm_layer = 'temp1', 'temp2'
def main():
arcpy.MakeFeatureLayer_management(rrn, rrn_layer)
arcpy.MakeFeatureLayer_management(osm, osm_layer)
arcpy.SelectLayerByLocation_management(rrn_layer, 'INTERSECT', osm_layer)
t = timeit.Timer("main()", "from __main__ import main")
print t.timeit(1)
and got the following results after running it a few times:2.9045302362
1.4424658839
1.45464152827
The thing is, this happens regardless of the content of your code, anytime you need to import modules. import os
import timeit
def main():
x = os.getcwd()
t = timeit.Timer("main()", "from __main__ import main")
print t.timeit(1)
gives results like this:8.8015191422e-06
6.2867993873e-06
6.30113935691e-06
You should notice that same time discrepancy the first time you run any Python application in a newly-loaded environment, after the addition of a module import, or in any instance where the PYC file for your current session hasn't been created.Hope this helps!Marc