Skip to main content

I have a workspace that is calculating the shortest path across a network for a dataset of start and end points (joined as lines). The length of time it is taking to process the data through the ShortestPathFinder transformer is a lot and it sits as follows for hours on end:
 

 

Is there a way to speed this up at all? I know I’m trying to process a large amount of data which could be the primary reason but I am curious if there are ways to perfect this process to enable it to complete much faster.

First rule of high-performance FME: Turn OFF feature caching :-)

https://support.safe.com/hc/en-us/articles/25407655250573-Feature-Caching-and-Performance

Secondly, make sure to only keep the relevant attributes before doing any processing. Remove any unecessary attributes from the readers e.g. using AttributeKeepers.

 


If you want to keep some featurecaching but reduce the overhead, anything you collapse in a bookmark is not cached so can be useful for some cases.

 

Another option is to split your From-To Lines into chunks and then set up a workspace runner to run a child workspace that does the shortest path calculation with 7 concurrent processes. You probably want to store your network somewhere so it is used in each process rather than the doing the PointOnLineOverlayer processing each time


What are your parameters in the ShortestPathFinder? They can make a huge difference to the time taken, especially if you have the Advanced parameters such as Finish Conditions turned on.

If you can file a support ticket with us - and include your data - we’d be very happy to take a look at why the performance is so slow.


Reply