mtrompesri-nl-esridist

Fast Geoprocessing services (GPFeatureRecordSetLayer)

Discussion created by mtrompesri-nl-esridist Employee on Apr 5, 2013
Hi,

I need a very fast GP service. The service is based on a 10.1 Python toolbox and uses "arcpy.analysis.Intersect".

I improved the performance very much (like 8X) by using FeatureLayers and IN_MEMORY FeatureClasses.

Input for the service is a GPFeatureRecordSetLayer, the bulk of the time (2 seconds) is now spend creating a temporary scratch workspace and read the data from this workspace.

Any tips how to improve performance?

I will look into sending objectID's instead of a GPFeatureRecordSetLayer, but in many cases I need to send features as input for a GP service.

Regards, Maarten Tromp

ArcGIS Server logfile is shown below, with the time spend on getting the GPFeatureRecordSetLayer in a FeatureLayer shown in RED.
<Msg time='2013-04-05T16:50:56,794' type='VERBOSE' code='20025' target='gptests/SpeedTest1.GPServer' methodName='GPServerSync.Activate' machine='LXP900053L' process='9104' thread='6584' user='null' elapsed='0.00007'>GPServerSync.Activate</Msg>
<Msg time='2013-04-05T16:50:56,794' type='FINE' code='100001' target='gptests/SpeedTest1.GPServer' methodName='tasks/SpeedTest/execute' machine='LXP900053L' process='9104' thread='6584' user='null' >REST request received. Request size is 63096 characters.</Msg>
<Msg time='2013-04-05T16:50:56,920' type='VERBOSE' code='20023' target='gptests/SpeedTest1.GPServer' methodName='GPServerSync.LoadMessage.SpeedTest' machine='LXP900053L' process='9104' thread='6584' user='null' elapsed='0.12534'>Load job  message type REST message size 63096</Msg>
<Msg time='2013-04-05T16:50:56,920' type='DEBUG' code='20025' target='gptests/SpeedTest1.GPServer' methodName='GPServerSync.CreateScratchDirectory' machine='LXP900053L' process='9104' thread='6584' user='null' >Create directory succeeded: d:\arcgisserver\directories\arcgisjobs\gptests\speedtest1_gpserver\jc2d5289507d5414ba8ef0f465289c5aa</Msg>
<Msg time='2013-04-05T16:50:56,920' type='DEBUG' code='20025' target='gptests/SpeedTest1.GPServer' methodName='GPServerSync.CreateScratchDirectory' machine='LXP900053L' process='9104' thread='6584' user='null' >Create directory succeeded: d:\arcgisserver\directories\arcgisjobs\gptests\speedtest1_gpserver\jc2d5289507d5414ba8ef0f465289c5aa\scratch</Msg>
<Msg time='2013-04-05T16:50:56,921' type='DEBUG' code='20025' target='gptests/SpeedTest1.GPServer' methodName='GPServerSync.InitScratchWorkspace' machine='LXP900053L' process='9104' thread='6584' user='null' >d:\arcgisserver\directories\arcgisjobs\gptests\speedtest1_gpserver\jc2d5289507d5414ba8ef0f465289c5aa\scratch</Msg>
<Msg time='2013-04-05T16:50:57,448' type='VERBOSE' code='20025' target='gptests/SpeedTest1.GPServer' methodName='GPServerSync.InitJob.SpeedTest' machine='LXP900053L' process='9104' thread='6584' user='null' elapsed='0.52793'>Load job jc2d5289507d5414ba8ef0f465289c5aa message type REST message size 63096</Msg>
<Msg time='2013-04-05T16:50:57,448' type='VERBOSE' code='20023' target='gptests/SpeedTest1.GPServer' methodName='GPServerSync.Load.SpeedTest' machine='LXP900053L' process='9104' thread='6584' user='null' elapsed='0.00013'>Load job jc2d5289507d5414ba8ef0f465289c5aa message type REST message size 63096</Msg>
<Msg time='2013-04-05T16:50:58,677' type='VERBOSE' code='20022' target='gptests/SpeedTest1.GPServer' methodName='GPServerSync.Execute.SpeedTest' machine='LXP900053L' process='9104' thread='6584' user='null' elapsed='1.22898'>Execute job jc2d5289507d5414ba8ef0f465289c5aa</Msg>

<Msg time='2013-04-05T16:50:58,947' type='VERBOSE' code='20024' target='gptests/SpeedTest1.GPServer' methodName='GPServerSync.Save.SpeedTest' machine='LXP900053L' process='9104' thread='6584' user='null' elapsed='0.27038'>Save job jc2d5289507d5414ba8ef0f465289c5aa message type REST message size 63096</Msg>
<Msg time='2013-04-05T16:50:58,948' type='FINE' code='100004' target='gptests/SpeedTest1.GPServer' methodName='tasks/SpeedTest/execute' machine='LXP900053L' process='9104' thread='6584' user='null' elapsed='2.15331'>REST request successfully processed. Response size is 822231 characters.</Msg>
<Msg time='2013-04-05T16:50:58,961' type='VERBOSE' code='20025' target='gptests/SpeedTest1.GPServer' methodName='GPServerSync.Deactivate' machine='LXP900053L' process='9104' thread='6584' user='null' elapsed='0.01256'>GPServerSync.Deactivate</Msg>

Outcomes