{"title":"ArcGIS server 10环境下的性能与生产力","authors":"B. Collins","doi":"10.1145/1999320.1999377","DOIUrl":null,"url":null,"abstract":"While many programming languages excel in their ability to execute commands quickly, others embody a greater focus on programmer productivity and clear syntax. In ESRI's GIS software package ArcGIS, Python is now the choice language for many GIS Analysts as an alternative to the more complex ArcObjects library. ArcObjects is written in C#, Visual Basic, Java, or C++, all more difficult languages to learn than Python, but also much faster. In modern web mapping, ArcGIS Python scripts are now making their way onto the server, sometimes at the expense of application performance and stability. I have explored the idea of code performance vs. programmer productivity in the context of ArcGIS Server by writing several web-based geoprocessing services in both Python and C# ArcObjects. The goal was to identify the classes of tools which are best developed using one technology or the other, either based on performance or ease of development. From the outset, I made the assumption that under equal circumstances, it is easier to develop a service in Python, but that C# will always execute faster. The different geoprocessing services were divided into three categories: raster-based, vector-based, and server utilities. The services had different inputs and outputs ranging from text to polygons to zip files. Multi-Mechanize web performance and load testing framework was used to automate requests and make testing repeatable. Multi-Mechanize is an open source testing framework written in python which assisted in replaying requests, logging responses, and compiling statistics. Using this framework, I was able to make an assessment of the exact types of geoprocessing services which should be built using python, and which should be avoided.","PeriodicalId":400763,"journal":{"name":"International Conference and Exhibition on Computing for Geospatial Research & Application","volume":"70 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2011-05-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Performance vs. productivity in the context of ArcGIS server 10\",\"authors\":\"B. Collins\",\"doi\":\"10.1145/1999320.1999377\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"While many programming languages excel in their ability to execute commands quickly, others embody a greater focus on programmer productivity and clear syntax. In ESRI's GIS software package ArcGIS, Python is now the choice language for many GIS Analysts as an alternative to the more complex ArcObjects library. ArcObjects is written in C#, Visual Basic, Java, or C++, all more difficult languages to learn than Python, but also much faster. In modern web mapping, ArcGIS Python scripts are now making their way onto the server, sometimes at the expense of application performance and stability. I have explored the idea of code performance vs. programmer productivity in the context of ArcGIS Server by writing several web-based geoprocessing services in both Python and C# ArcObjects. The goal was to identify the classes of tools which are best developed using one technology or the other, either based on performance or ease of development. From the outset, I made the assumption that under equal circumstances, it is easier to develop a service in Python, but that C# will always execute faster. The different geoprocessing services were divided into three categories: raster-based, vector-based, and server utilities. The services had different inputs and outputs ranging from text to polygons to zip files. Multi-Mechanize web performance and load testing framework was used to automate requests and make testing repeatable. Multi-Mechanize is an open source testing framework written in python which assisted in replaying requests, logging responses, and compiling statistics. Using this framework, I was able to make an assessment of the exact types of geoprocessing services which should be built using python, and which should be avoided.\",\"PeriodicalId\":400763,\"journal\":{\"name\":\"International Conference and Exhibition on Computing for Geospatial Research & Application\",\"volume\":\"70 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2011-05-23\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"International Conference and Exhibition on Computing for Geospatial Research & Application\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/1999320.1999377\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"International Conference and Exhibition on Computing for Geospatial Research & Application","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1999320.1999377","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Performance vs. productivity in the context of ArcGIS server 10
While many programming languages excel in their ability to execute commands quickly, others embody a greater focus on programmer productivity and clear syntax. In ESRI's GIS software package ArcGIS, Python is now the choice language for many GIS Analysts as an alternative to the more complex ArcObjects library. ArcObjects is written in C#, Visual Basic, Java, or C++, all more difficult languages to learn than Python, but also much faster. In modern web mapping, ArcGIS Python scripts are now making their way onto the server, sometimes at the expense of application performance and stability. I have explored the idea of code performance vs. programmer productivity in the context of ArcGIS Server by writing several web-based geoprocessing services in both Python and C# ArcObjects. The goal was to identify the classes of tools which are best developed using one technology or the other, either based on performance or ease of development. From the outset, I made the assumption that under equal circumstances, it is easier to develop a service in Python, but that C# will always execute faster. The different geoprocessing services were divided into three categories: raster-based, vector-based, and server utilities. The services had different inputs and outputs ranging from text to polygons to zip files. Multi-Mechanize web performance and load testing framework was used to automate requests and make testing repeatable. Multi-Mechanize is an open source testing framework written in python which assisted in replaying requests, logging responses, and compiling statistics. Using this framework, I was able to make an assessment of the exact types of geoprocessing services which should be built using python, and which should be avoided.