Ok, eu não sou um programador, mas um usuário prolífico de GIS. Eu sei que QGIS é escrito em C ++ e ArcGIS em ??? ultimamente, na maioria das minhas tarefas, eu sempre tento usar o QGIS não apenas porque é gratuito, mas também porque a experiência do usuário é muito boa.
Todos os Gurus do GIS por aí, você pode me dizer algumas razões para a diferença de velocidade entre esses dois sistemas? Honestamente, me dói usar o ArcGIS 10 devido à sua velocidade e eu tenho um PC com 8 GB de RAM.
qgis
arcgis-desktop
arcgis-10.0
performance
ux
GeoH2O
fonte
fonte
ogr2ogr
36 vezes mais rápido que o Arcgis ao converter shapefiles ( ref ). Eu espero que o QGIS seja um pouco mais lento que os barebones ogr2ogr na mesma tarefa, mas não muito desde que ele use ogr (evidências de qualquer maneira são bem-vindas).Respostas:
O ArcGIS parece muito inchado. Lembro-me de um enorme impacto no desempenho ao migrar do Arcview 3.2 para o ArcGIS 8.0 e, em muitos lugares, ele ainda existe. Naquela época, eu achava que tinha muito a ver com a migração de códigos Arc / Info anteriores para o Windows e com a necessidade de reduzir alguns cantos no desempenho, mas não tenho certeza se isso é verdade. Lembro-me de ver alguns exemplos neste site sobre funções que ainda são muito mais rápidas no Arcview 3.3 do que no ArcGIS 10. Isso não tem nada a ver com os tempos de inicialização, etc. E eu discordo da resposta anterior do que das habilidades do usuário ' Clicar e esperar não tem nada a ver com habilidade.
Eu acho que a realidade é que o ArcGIS não foi escrito com o desempenho em mente e cada versão continua tentando lançar cada vez mais funcionalidade em uma plataforma de código já sobrecarregada.
fonte
Não conheço o QGIS, mas me pergunto como ele se compara ao ArcGIS em termos de extensibilidade. Infelizmente, parece haver pelo menos algumas vantagens e desvantagens entre extensibilidade e desempenho. A melhor maneira de descobrir a extensibilidade do ArcGIS é examinar as categorias de componentes COM da Esri encontradas no registro.
Cada categoria representa um local onde os usuários podem registrar DLLs contendo classes que implementam uma interface Esri. Existem muitas categorias. Essas categorias também contêm comida de cachorro - a Esri as usa não apenas para descobrir personalizações de terceiros, mas também para funcionalidade imediata. Embora isso ofereça um nível de personalização muito refinado, também significa que todos esses grãos finos precisam ser descobertos e carregados em tempo de execução. Não sei ao certo qual é o custo de realocação , mas deve ser significativo.
C:\Program Files (x86)\ArcGIS\Desktop10.0\Bin\Categories.exe
Quando você cria uma dll no Visual Studio, há um local em que você pode especificar o endereço base para a dll carregar. Como existem muitas dlls de tamanhos diferentes sendo carregadas, saber isso com antecedência para uma personalização do ArcObjects seria muito difícil. Ainda assim, gostaria de saber se um arquivo de configuração pode ser criado, instruindo onde a dll deve ser carregada na memória. Nesse caso, uma vez que o usuário tenha o arcmap executando com as dlls carregadas que ele normalmente usará, ele poderá executar uma rotina que gravará os endereços base da dll em um arquivo de configuração. Dessa forma, quando o arcmap é iniciado, pode evitar a realocação carregando nesses endereços. Por outro lado, talvez com 64 bits isso não importe.
Na 10.0, Esri introduziu suplementos. As categorias de suplementos são muito menores e a descoberta não depende do registro do Windows. Em vez disso, as DLLs de suplemento são compactadas e colocadas em uma pasta conhecida. Não tenho certeza de como isso compara o desempenho com as DLLs descobertas pelo registro do Windows. Eu acho que o objetivo principal era permitir a instalação por não administradores.
Estou assumindo que a pergunta está se referindo ao produto Desktop. O novo produto ArcGIS Runtime é muito mais leve. Eu ouvi isso descrito como um substituto para o MapObjects. Será interessante ver como evolui. Se o Esri introduzir extensibilidade para o WPF Runtime, espero que eles não usem o mesmo mecanismo de descoberta usado pelo Visual Studio quando ele preencher a lista de assemblies. A primeira vez que você clicou em "Adicionar referência ..." ficou dolorosamente lenta.
fonte
Perdoe-me por ressuscitar o encadeamento, mas posso dar um exemplo específico de como a experiência do usuário difere do ArcMap e QGIS.
Hoje, eu precisava criar uma grade de pontos com espaçamento de 250 metros em um país pequeno, prender a grade de pontos em um polígono de borda do país e associar os valores de várias barras de rastreio à grade de pontos.
No ArcMap, demorei cerca de 10 minutos, desde o download dos dados até um conjunto de dados concluído. Em QGIS (Wroclaw), o programa travou duas vezes apenas cortando a grade com o polígono e depois foi executado por uma hora antes de concluir a terceira tentativa. Isso está em uma caixa com 4 núcleos duplos e 6 GB de RAM.
Eu amo o QGIS e me incomoda usar o ArcMap, mas encontro muitos casos de uso comuns em que o QGIS não atende às minhas necessidades.
Agora, se alguém tiver algum conselho de ajuste de desempenho que possa resolver essa lacuna de desempenho, sou todo ouvidos.
Chris
fonte
Eu não acho que o Arc seja escrito em .NET. Arcobjects são escritos em C ++. O arco pode ser mais lento devido ao uso de muitas GUIs avançadas, ferramentas de ajuda, complementos etc. O QGIS é um ótimo software, mas carece de alguns recursos úteis que podem ser bons para iniciantes. Também não acho que as ferramentas básicas do ESRI (Arcobjects) sejam lentas. Geralmente, tudo se resume às habilidades do usuário; se o usuário souber usar o Arc, não será tão lento assim. Dito isto, devo mencionar também que toda ferramenta deve ser considerada caso a caso em relação ao seu desempenho. A outra coisa é que Arc foi o primeiro na cena GIS. Primeiro (relativamente ao QGIS) é sempre com bugs e a próxima geração é um pouco melhor, neste caso, mais rápida, mas tudo isso é apenas minha opinião pessoal.
fonte
Ctrl+C
enquanto um ArcObjects realiza alguma operação, você receberá uma mensagem da biblioteca de tempo de execução do Fortran.Isso está relacionado ao desempenho do ArcGIS: ArcMap, ArcCatalog é muito lento para abrir em um novo laptop com amplos recursos? o que em parte pode ser responsável por alguns dos problemas de desempenho. Esse tópico mostra como a configuração de hardware, rede e licenciamento pode ter um efeito substancial no desempenho do ArcGIS. Possivelmente, algumas das diferenças relatadas na velocidade podem ser devidas a esses fatores, e não a diferenças inerentes nas capacidades.
(Publicado como um link de resposta, pois os comentários tendem a se perder.)
fonte
Trabalho com dados de nível empresarial (dados de pontos de interesse de toda a Turquia, por exemplo) e, às vezes, apenas para verificar o conjunto de dados, preciso dessa renderização.
Se você deseja melhorar seu desempenho com o ArcGIS, há algumas coisas que eu poderia aconselhar;
Sempre use dados projetados. Usar geodatabases ou ArcSDE com o postgresql funciona perfeito para mim.
O uso do geodatabase de arquivo e, se possível, o arcsde aumentam a velocidade de suas operações. Minha experiência pessoal com QGIS e ArcMap é realmente o contrário. Como leva quase alguns minutos para renderizar 3 milhões de pontos em um mapa. Por outro lado, o ArcMap os processa em segundos.
Apenas minha opinião.
fonte