Monday 23 February 2015

Has anybody done performance benchmarks between C++, C#, and Java ArcGIS Server Object Extensions?



Has anybody done performance benchmarks between C++, C#, and Java ArcGIS Server Object Extensions?


I'm wondering writing lower-level code translates to better performance.




Answer



The only benchmark I've come across is in a presentation (pg. 4) on using ArcObjects in Python.


The other language bindings are wrappers around the C++ com libraries. The associated overhead does impact performance, but it would depend on how you are using them.


If you are making many calls over and over again in the body of a loop then C++ will generally perform much faster. If you are using library calls to perform more general, less iterative operations then it may not matter much.


The benchmarking results from the presentation (500+K ShapeCopy calls, speed relative to C++):



  • .NET - 48%

  • Python - 32%

  • Java - 16%



I can't speak to Java, but in my own personal experience with both .NET and Python, the numbers in the presentation weren't surprising and seem to be about right.


If the presentation is showing a white background, try downloading it and viewing it locally.


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...