Ok, no soy un programador sino un prolífico usuario de SIG. 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 gratuito sino porque su experiencia de usuario es muy buena.
Todos los GIS Gurus que existen pueden decirme algunas razones de la diferencia de velocidad entre estos dos sistemas? Sinceramente, me duele usar ArcGIS 10 debido a su velocidad y tengo una PC con 8 GB de RAM.
qgis
arcgis-desktop
arcgis-10.0
performance
ux
GeoH2O
fuente
fuente
ogr2ogr
36 veces más rápido que Arcgis al convertir shapefiles ( ref ). Espero que QGIS sea un poco más lento que barebones ogr2ogr en la misma tarea, pero no mucho ya que usa ogr (la evidencia de cualquier manera es bienvenida).Respuestas:
ArcGIS parece muy hinchado. Recuerdo un gran impacto en el 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 que ESRI migrara el código Arc / Info anterior a Windows y tuviera que reducir algunas esquinas en el rendimiento, pero no estoy seguro de si eso es cierto. Recuerdo haber visto algunos ejemplos en este mismo sitio sobre funciones que todavía son dramáticamente 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 tiene que ver con 'habilidades de 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 cada vez más funcionalidades en una plataforma de código ya sobrecargada.
fuente
No estoy tan 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 extensibilidad y rendimiento. La mejor manera que he encontrado para tener una idea de la extensibilidad de ArcGIS es echar un vistazo a las categorías de componentes COM de Esri 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 muchas 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 la funcionalidad inmediata. Si bien esto proporciona un nivel de personalización muy fino, también significa que todos estos granos finos necesitan ser descubiertos y cargados en tiempo de ejecución. No estoy seguro de cuál es el costo de reubicación , pero debe ser significativo.
C:\Program Files (x86)\ArcGIS\Desktop10.0\Bin\Categories.exe
Cuando crea un archivo DLL en Visual Studio, hay un lugar donde puede especificar la dirección base para cargar el archivo DLL. Dado que hay tantos dlls de diferentes tamaños que se cargan, saber esto con anticipación para una personalización de ArcObjects sería muy difícil. Aún así, me pregunto si podría crearse un archivo de configuración que indique dónde debe cargarse el dll en la memoria. Si es así, una vez que un usuario tiene arcmap ejecutándose con los dlls cargados que normalmente usará, podría ejecutar una rutina que escribiría las direcciones base de dll en un archivo de configuración. De esa manera, cuando se inicie arcmap, podría evitar la reubicación al cargar en esas direcciones. Por otra parte, tal vez con 64 bits, esto no importará.
En 10.0, Esri introdujo complementos. Las categorías de complementos son mucho más pequeñas, y el descubrimiento no depende del registro de Windows. En cambio, los dlls de complementos se comprimen y se colocan en una carpeta conocida. No estoy seguro de cómo esto compara el rendimiento en cuanto a los dlls descubiertos a través del registro de Windows. Creo que el objetivo principal era permitir la instalación por no administradores.
Supongo que la pregunta se refiere al producto de escritorio. El nuevo producto ArcGIS Runtime es mucho más liviano. Lo escuché descrito como un reemplazo para MapObjects. Será interesante ver cómo evoluciona. Si Esri introduce la extensibilidad para WPF Runtime, espero que no usen el mismo mecanismo de descubrimiento utilizado por Visual Studio cuando llena la lista de ensamblados. La primera vez que haga clic en "Agregar referencia ..." se ha vuelto extremadamente lento.
fuente
Perdóname por resucitar el hilo, pero puedo dar un ejemplo específico de cómo la experiencia del usuario difiere de 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 frontera de país y asociar los valores de varios rásteres a la cuadrícula de puntos.
En ArcMap, esto me llevó unos 10 minutos, desde la descarga de los datos hasta un conjunto de datos terminado. 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
fuente
No creo que Arc esté escrito en .NET. Los arcobjects 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 excelente software, pero carece de algunas características útiles que pueden ser buenas para los principiantes. Además, no creo que las herramientas básicas de nivel 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 rendimiento. La otra cosa es que Arc fue el primero en la escena SIG. Primero (relativamente a QGIS) es siempre 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.
fuente
Ctrl+C
mientras un ArcObjects realiza alguna operación, recibirá un mensaje de una biblioteca de tiempo de ejecución de Fortran.Esto se relaciona con el rendimiento de ArcGIS: ArcMap, ArcCatalog, ¿es muy lento para abrir en una computadora portátil nueva con amplios recursos? que en parte puede explicar 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 y no a diferencias inherentes en las capacidades.
(Publicado como un enlace de respuesta, ya que los comentarios tienden a perderse).
fuente
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 recomendarle;
Utilice siempre los datos proyectados. Usar geodatabases o ArcSDE con postgresql funciona perfecto para mí.
El uso de la geodatabase de archivos y, si es posible, arcsde aumenta la velocidad de sus operaciones. Mi experiencia personal con QGIS y ArcMap es en realidad lo contrario. Como toma casi minutos renderizar 3 millones de puntos en un mapa. Por otro lado, ArcMap los renderiza en segundos.
Solo es mi opinión.
fuente