I'm curious, how long does it take in your machine(s) for your scripts to get ready to start working?
Put something like this at the beginning of some scripts and share the results.
from timeit import default_timer as timer
start = timer()
from datetime import datetime, timedelta
print('=== {}'.format(datetime.now()))
start_arc = timer()
import arcpy
done_arc = timer() - start_arc
print('--- import arcpy overhead: {}'.format(timedelta(seconds=done_arc)))
#import os, math, ...
#carry on with your stuff
elapsed_time = timedelta(seconds=timer() - start)
# get timer seconds and convert to hh:mm:ss
print('=== Total Elapsed Time: {}'.format(elapsed_time))
After about a week and perhaps 30 trials in various circumstances the fastest time I've ever seen is 7.8 seconds, the slowest is 10.5, and the median is ~8.5.
(updated code to run in py 2.7 and 3.6+)
That is interesting. Are you sure you aren't sitting in an Esri office somewhere...
Cold start (both computer and operator)
Named User license
=== 2020-03-06 18:15:53.214205
--- import arcpy overhead: 0:00:07.948694
=== Total Elapsed Time: 0:00:07.949882
Spyder, kernel restart
=== 2020-03-06 18:17:48.751537
--- import arcpy overhead: 0:00:07.402486
=== Total Elapsed Time: 0:00:07.403328
Sadly, just about everything in the stream imports arcpy at some point
but if you just import what you need, you keep the namespace uncluttered.
Also, import python modules and other 3rd party modules "before" you import arcpy
My favorite... just run it again with no restart
=== 2020-03-06 18:19:29.711990
--- import arcpy overhead: 0:00:00.000067
=== Total Elapsed Time: 0:00:00.000738
I updated the script so it outputs as a table, for easier comparison:
What is your "import arcpy" overhead? · GitHub
Does anyone know how to add what the license type and status is? (are we currently in mode "Single Use, Concurrent, Concurrent but Borrowed, AGOL, AGOL but Offline" etc.?)
And what about automatically appending to a public report Gist or similar?
They may be in the arcgis module
Do you want the additions there? or here?
There would be easier to track I think (and thanks in advance!)
Here are my results on Windows 10 running ArcGIS Pro 2.5:
=== 2020-03-09 16:22:25.363385
--- import arcpy overhead: 0:00:03.624114
=== Total Elapsed Time: 0:00:03.646515
Here are my results running from command line on Windows 10 Enterprise (64 bit); RAM: 8GB; Processor: Intel Core i#-6100 CPU @ 3.70GHz; ArcGIS Desktop 10.5.1 - License: Advanced (ArcInfo) Single Use
=== 2020-03-10 12:05:39.100000
--- import arcpy overhead: 0:00:02.663260
=== Total Elapsed Time: 0:00:02.666598
Surprised to see how it is a good result comparing with the other answers
Desktop 10.5 - concurrent license; Win 10 Enterprise x64, 64GB RAM; test through PyCharm
First run: 9.35 seconds
Second run: 3.86 seconds
Pro 2.4 - AGOL license; test through PyCharm
First run: 5.8 seconds
Second run: 4.3 seconds