¿Por qué la velocidad de rendimiento entre ArcGIS y QGIS es tan diferente?

17

Ok, no soy un programador, sino un usuario GIS prolífico. Sé que QGIS está escrito en C ++ y ArcGIS en ??? pero para la mayoría de mis tareas últimamente, siempre trato de usar QGIS no solo porque es gratis, sino también porque su experiencia como usuario es muy buena.

Todos los Gurus Gurus por ahí, ¿pueden decirme algunas razones de la diferencia de velocidad entre estos dos sistemas? Honestamente, me duele usar ArcGIS 10 debido a su velocidad y tengo una PC con 8 GB de RAM.

    
pregunta GeoH2O 16.02.2012 - 03:52

6 respuestas

10

ArcGIS parece muy hinchado. Recuerdo un gran éxito de rendimiento al migrar de Arcview 3.2 a ArcGIS 8.0, y en muchos lugares todavía existe. En ese momento, pensé que tenía mucho que ver con la migración de ESRI del código anterior de Arc / Info a Windows y tener que reducir algunos aspectos del rendimiento, pero no estoy seguro de si eso es cierto. Recuerdo haber visto algunos ejemplos en este mismo sitio sobre funciones que aún son mucho más rápidas en Arcview 3.3 que en ArcGIS 10. Esto no tiene nada que ver con los tiempos de inicio, etc. Y no estoy de acuerdo con la respuesta anterior que con las "habilidades del usuario" '. Hacer clic y esperar no tiene nada que ver con la habilidad.

Creo que la realidad es que ArcGIS no se escribió teniendo en cuenta el rendimiento y cada versión sigue intentando lanzar más y más funcionalidad en una plataforma de código ya sobrecargada.

    
respondido por el blindjesse 16.02.2012 - 16:17
12

No estoy muy familiarizado con QGIS, pero me pregunto cómo se compara con ArcGIS en términos de extensibilidad. Desafortunadamente, parece haber al menos algunas compensaciones entre la extensibilidad y el rendimiento. La mejor manera que he encontrado para tener una idea de la extensibilidad de ArcGIS es mirar Categorías de componentes COM que se encuentran en el registro.

Cada categoría representa un lugar donde los usuarios pueden registrar archivos DLL que contienen clases que implementan una interfaz Esri. Hay un lote de categorías. Estas categorías también contienen comida para perros : Esri las usa no solo para descubrir personalizaciones de terceros, sino también para su funcionalidad inmediata. Si bien esto proporciona un nivel de personalización muy preciso, también significa que todos estos granos finos deben descubrirse y cargarse en el tiempo de ejecución. No estoy seguro de cuál es el costo de reubicación , pero debe ser importante.

C:\ProgramFiles(x86)\ArcGIS\Desktop10.0\Bin\Categories.exe

CuandocreasunarchivoDLLenVisualStudio,hayunlugardondepuedes especificar la dirección base para el dll para cargar en. Dado que hay muchas dlls de diferentes tamaños que se están cargando, saber esto con anticipación para una personalización de ArcObjects sería muy difícil. Sin embargo, me pregunto si se podría crear un archivo de configuración que indique dónde se debe cargar la DLL en la memoria. Si es así, una vez que un usuario haya ejecutado arcmap con las dlls cargadas que usará normalmente, podría ejecutar una rutina que escribiría las direcciones base de dll en un archivo de configuración. De esa manera, cuando arcmap se inicie, podría evitar la reubicación reubicando en esas direcciones. Entonces, quizás nuevamente con 64 bit esto no importará.

En 10.0 Esri introdujo complementos. Las categorías de complementos son mucho más pequeñas y el descubrimiento no se basa en el registro de Windows. En su lugar, las dll de complemento se comprimen y se colocan en una carpeta conocida. No estoy seguro de cómo se compara esto en cuanto al rendimiento con las DLL descubiertas a través del registro de Windows. Creo que el objetivo principal era permitir la instalación por parte de personas que no sean administradores.

Supongo que la pregunta se refiere al producto Desktop. El nuevo producto ArcGIS Runtime es mucho más liviano. He oído que se describe como un reemplazo para MapObjects. Será interesante ver cómo evoluciona. Si Esri introduce la extensibilidad para WPF Runtime, espero que no utilicen el mismo mecanismo de descubrimiento que utiliza Visual Studio cuando llena la lista de ensamblajes. La primera vez que se hace clic en "Agregar referencia ..." se ha vuelto muy lenta.

    
respondido por el Kirk Kuykendall 17.02.2012 - 06:22
7

Perdóneme por resucitar el hilo, pero puedo dar un ejemplo específico de cómo la experiencia del usuario difiere para ArcMap y QGIS.

Hoy necesitaba construir una cuadrícula de puntos con un espacio de 250 metros en un país pequeño, recortar la cuadrícula de puntos en un polígono de borde de país y asociar los valores de varios rásteres a la cuadrícula de puntos.

En ArcMap, esto me llevó aproximadamente 10 minutos, desde la descarga de los datos hasta un conjunto de datos finalizado. En QGIS (Wroclaw), el programa se bloqueó dos veces simplemente recortando la cuadrícula con el polígono, luego se ejecutó durante una hora antes de completar el tercer intento. Esto está en una caja con 4 núcleos duales y 6 Gb de RAM.

Me encanta QGIS, y me molesta usar ArcMap, pero encuentro muchos casos de uso comunes en los que QGIS no satisface mis necesidades.

Ahora, si alguien tiene algún consejo de ajuste de rendimiento que pueda resolver esta brecha de rendimiento, soy todo oídos.

Chris

    
respondido por el iamchriskelley 23.03.2012 - 05:45
6

No creo que Arc esté escrito en .NET. Los objetos de arco están escritos en C ++. Arc puede ser más lento debido al uso de muchas GUI avanzadas, herramientas de ayuda, complementos, etc. QGIS es un gran software, pero carece de algunas funciones útiles que pueden ser buenas para los principiantes. Además, no creo que las herramientas básicas de lavel en ESRI (Arcobjects) sean lentas. Por lo general, se reduce a las habilidades del usuario, si el usuario sabe cómo usar Arc, no es tan lento en absoluto. Dicho esto, debo mencionar también que cada herramienta debe considerarse caso por caso con respecto a su desempeño. La otra cosa es que, Arc fue el primero en la escena GIS. Primero (en comparación con QGIS) siempre está con errores y la próxima generación es un poco mejor, en este caso más rápido, pero todo esto es solo mi opinión personal.

    
respondido por el Tomek 16.02.2012 - 07:34
6

Esto se relaciona con el rendimiento de ArcGIS: ArcMap, ArcCatalog muy ¿Es lento para abrir en una nueva computadora portátil con amplios recursos? que puede explicar en parte algunos de los problemas de rendimiento. Ese hilo muestra cómo el hardware, la red y la configuración de licencias pueden tener un efecto sustancial en el rendimiento de ArcGIS. Posiblemente, algunas de las diferencias informadas en la velocidad podrían deberse a tales factores en lugar de diferencias inherentes en las capacidades.

(Publicado como enlace de respuesta, ya que los comentarios tienden a perderse.)

    
respondido por el user681 17.02.2012 - 00:37
2

Trabajo con datos de nivel empresarial (datos de puntos de interés para toda Turquía, por ejemplo) y, a veces, solo para verificar el conjunto de datos, necesito esa representación.

Si desea mejorar su rendimiento con ArcGIS, hay algunas cosas que podría recomendar;

Utilice siempre los datos proyectados. Usar geodatabases o ArcSDE con postgresql funciona perfecto para mí.

Usando geodatabase de archivos y si es posible, arcsde aumenta la velocidad de sus operaciones. Mi experiencia personal con QGIS y ArcMap es realmente lo contrario. Ya que toma casi minutos generar 3 millones de puntos en un mapa. Por otro lado, ArcMap los procesa en segundos.

Sólo mi opinión.

    
respondido por el Anıl Çelik 23.03.2012 - 09:40

Lea otras preguntas en las etiquetas