ArcGIS ve QGIS arasındaki performans hızı neden bu kadar farklı?


17

Tamam ben bir programcı değil üretken bir CBS kullanıcısıyım. QGIS C ++ ile yazılmış ve biliyorum ArcGIS ??? ancak son zamanlarda görevlerimin çoğu için QGIS'i her zaman sadece ücretsiz olduğu için değil, Kullanıcı deneyiminin çok iyi olması nedeniyle de kullanmaya çalışıyorum.

Tüm GIS Gurus'ları bana bu iki sistem arasındaki hız farkının bazı nedenlerini söyleyebilir misiniz? Dürüst olmak gerekirse, hızı nedeniyle ArcGIS 10'u kullanmak bana acı veriyor ve 8 GB RAM'li bir bilgisayarım var.


3
Yavaş bulduğunuz yönler hakkında daha fazla bilgi verebilir misiniz? Örneğin, veriye göz atma, rasterleri analiz etme, coğrafi işleme vb.
Stephen Lead

Genel deneyim çok yavaş .. şekil dosyaları eklemek demek ... arctoolbox açmak vb.
GeoH2O

2
ArcGIS kesinlikle .NET'te yazılmamıştır. Çoğunlukla C ++ 'da cıvatalı diğer birçok
şeyle yazılır

1
@StephenLead, ogr2ogrşekil dosyalarını ( ref ) dönüştürürken Arcgis'ten 36 kat daha hızlı çalıştım . Aynı görevde QGIS'in barebone ogr2ogr'dan biraz daha yavaş olmasını bekliyorum, ancak ogr kullandığından çok fazla değil (kanıt her iki şekilde de açıktır).
matt wilkie

3
belki konuşma yeniden: başka bir yerde belirli hız farklılıkları yapılabilir, belki sohbet? chat.stackexchange.com/transcript/message/3510767#3510767
matt wilkie

Yanıtlar:


10

ArcGIS çok şişkin görünüyor. Arcview 3.2'den ArcGIS 8.0'a geçerken çok büyük bir performans anımsıyorum ve birçok yerde hala var. O zaman ESRI'nin önceki Arc / Info kodunu Windows'a geçirmesi ve performansta bazı köşeleri kesmesi gerekecek çok şey olduğunu düşündüm, ancak bunun doğru olup olmadığından emin değilim. Arcview 3.3'te ArcGIS 10'dan çok daha hızlı olan işlevler hakkında bu sitede bazı örnekler gördüğümü hatırlıyorum. Bunun başlangıç ​​zamanları, vb. '. Tıklamanın ve beklemenin beceri ile ilgisi yoktur.

Gerçek şu ki, ArcGIS performans göz önünde bulundurularak yazılmadı ve her sürüm zaten aşırı yüklenmiş bir kod platformuna daha fazla işlevsellik atmaya çalışıyor.


12

QGIS'e aşina değilim, ancak genişletilebilirlik açısından ArcGIS ile nasıl karşılaştırıldığını merak ediyorum. Ne yazık ki, genişletilebilirlik ve performans arasında en azından bazı dengesizlikler var gibi görünüyor. ArcGIS genişletilebilirliği hakkında bir fikir edinmenin en iyi yolu , kayıt defterinde bulunan Esri'nin COM bileşen kategorilerine bakmaktır .

Her kategori, kullanıcıların bir Esri arabirimi uygulayan sınıfları içeren dll'leri kaydedebilecekleri bir yeri temsil eder. Çok fazla kategori var. Bu kategoriler aynı zamanda köpek maması da içerir - Esri onları sadece 3. taraf özelleştirmelerini keşfetmek için değil, aynı zamanda kutudan çıkmış işlevselliği keşfetmek için kullanır. Bu çok hassas bir düzeyde kişiselleştirme sağlarken, aynı zamanda tüm bu ince tanelerin çalışma zamanında keşfedilmesi ve yüklenmesi gerektiği anlamına gelir. Yer değiştirme maliyetinin ne olduğundan emin değilim , ama önemli olmalı.

resim açıklamasını buraya girin

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

Visual Studio'da bir dll oluşturduğunuzda yüklenecek dll için temel adresi belirtebileceğiniz bir yer vardır . ArcObjects özelleştirme için vaktinden önce bilerek farklı boyutlarda birçok dll yüklü olduğundan çok zor olurdu. Yine de, dll'nin belleğe nereye yüklenmesi gerektiğini bildiren bir yapılandırma dosyasının oluşturulabileceğini merak ediyorum. Eğer öyleyse, bir kullanıcı tipik olarak kullanacağı dlls yüklü ile çalışan arcmap sahip olduğunda o bir yapılandırma dosyasına dll temel adresleri yazacak bir rutin çalıştırabilirsiniz. Bu şekilde arcmap başladığında , bu adreslere yüklenerek yer değiştirmeyi önleyebilir . Sonra tekrar belki 64 bit ile bu önemli değil.

10.0'da Esri Eklentileri tanıttı. Eklentilerin kategorileri çok daha küçüktür ve keşif Windows kayıt defterine dayanmaz. Bunun yerine, eklenti dll sıkıştırılmış ve bilinen bir klasöre yerleştirilir. Bu nasıl windows kayıt defteri aracılığıyla keşfedilen dll ile performans açısından karşılaştırır emin değilim. Bence asıl amaç yöneticiler tarafından kuruluma izin vermekti.

Sorunun Masaüstü ürününe atıfta bulunduğunu varsayıyorum. Yeni ArcGIS Runtime ürünü çok daha hafiftir. MapObjects'in yerini aldığını duydum. Nasıl geliştiğini görmek ilginç olacak. Esri, WPF Çalışma Zamanı için genişletilebilirlik sağlarsa, umarım montaj listesini doldururken Visual Studio tarafından kullanılan keşif için aynı mekanizmayı kullanmazlar. İlk defa "Referans Ekle ..." tıklandığında acı yavaşladı.


3
Birkaç yıl önce bir Esri satış temsilcisi tarafından Esri'nin dünyanın en büyük COM kütüphanesine sahip olduğu, Microsoft'un bile inşa ettiği her şeyden daha büyük olduğu söylendi. O zamandan beri Arcgis Desktop'ın durgunluğunun bir kısmının, talep üzerine ihtiyaç duyulan bitleri ve parçaları kapmak yerine bir kerede tüm kütüphaneyi yüklediğini varsaydım.
matt wilkie

@mattwilkie ArcMap'in başlangıç ​​zamanı çok daha yavaştı. Bunu geliştirmek için tam zamanında uzantılar getirdiler . Emin değilim, ama ilk kez veri ekle iletişim kutusunu başlattığınızda yüklenen gx nesneleri ile benzer bir yaklaşım alınır düşünüyorum.
Kirk Kuykendall

hı. Başlangıç ​​zamanı benim için daha hızlı değil (verilerden değil bellekten gidiyorum, bu yüzden sadece algı olabilir). 17'ler Görev Çubuğunda Arcmap 10 düğmesine tıklamaktan bir şey yapmaya hazır olana kadar ("son haritayı yükle" sihirbazı kapatıldığında). 2. oturum yaklaşık 12 saniyedir. Bu, C: sabit diski bir SSD ile değiştirdikten sonra olur. Quantum ilk çalıştırma için 4 s ve sonraki için 2 s alır.
matt wilkie

@mattwilkie Evet, aynı zamanda yeni araç çubukları vb. eklediler, bu yüzden tam zamanında elde edilen performans kazançları yeni yazılım özelliklerinden kaynaklanan gecikmeleri tamamen telafi etmedi. Göz önünde bulundurulması gereken diğer faktörler: Bir lisans sunucusuna erişiyor mu? Ne kadar RAM? Normal.mxt dosyanızı silmeniz / yeniden adlandırmanız daha hızlı mıdır? (ilk başlatmanın yeniden oluşturulması zaman alacağından, sildikten sonra ikinci kez test edin) Özelleştirmeler yüklediniz mi?
Kirk Kuykendall

1
Kirk: Harika cevap. @mattwilkie: bu doğru. Bayan Office'in bir noktada yaklaşık 400 (+?) COM Nesnesi vardı. Şimdiye kadar, GeoDatabase tek başına bu kadar düşünüyorum. Gerçek şu ki, daha iyi ya da daha kötüsü, ESRI biraz COM deli gitti. Bence o zamanlar güvenli bir karardı.
Ragi Yaser Burhum

8

Konuyu diriltmek için beni affet, ancak ArcMap ve QGIS için kullanıcı deneyiminin nasıl farklı olduğuna dair özel bir örnek verebilirim.

Bugün, küçük bir ülkede 250 metre aralıklı bir nokta ızgarası oluşturmam, nokta ızgarasını bir ülke sınır poligonuna klipslemem ve birkaç rasterin değerlerini nokta ızgarasıyla ilişkilendirmem gerekiyordu.

ArcMap'te bu, verileri indirmekten bitmiş bir veri kümesine kadar yaklaşık 10 dakika sürdü. QGIS'de (Wroclaw), Program iki kez çokgenle ızgarayı kırparak çöktü, sonra üçüncü denemeyi tamamlamadan önce bir saat koştu. Bu, 4 çift çekirdekli ve 6Gb RAM içeren bir kutuda.

QGIS'i seviyorum ve ArcMap'i kullanmamı istiyor, ancak QGIS'in ihtiyaçlarımı karşılamadığı birçok yaygın kullanım örneği buluyorum.

Şimdi, eğer birisi bu performans boşluğunu çözebilecek herhangi bir performans ayarlama tavsiyesine sahipse, ben tamamen kulaklarım.

Chris


kabul etti ama değer ne için ben her zaman önce QGIS akın ve orada işe yaramazsa geri ArcGIS
GeoH2O

1
Bana bir böcek gibi geliyor. Çökmeler kötü performansın bir ölçüsü değil, yanlış bir şeyin belirtisidir. QGIS insanlarına rapor et
Nicklas Avén

Bu nokta ızgarasını ne kadar büyük bir alan için inşa ediyorsunuz? QGIS (1.9) 'da 57k nokta üzerinde aynı operasyonu sorunsuzca çalıştırdım.
Simbamangu

@Simbamangu Honduras'ın etrafındaki sınırlayıcı bir kutu içindi - kabaca yarım milyon puan. at Nicklas_Aven: Alınan nokta; güvenilir bir şekilde çoğaltmak için zamanım varsa göndereceğim.
iamchriskelley

6

Arc'ın .NET ile yazılmış olduğunu düşünmüyorum. Arcobjects C ++ ile yazılmıştır. Arc, birçok gelişmiş GUI, yardım aracı, eklenti vb. Kullanımı nedeniyle daha yavaş olabilir. QGIS harika bir yazılımdır, ancak yeni başlayanlar için iyi olabilecek bazı yararlı özelliklerden yoksundur. Ayrıca ESRI'deki (Arcobjects) temel lavel araçlarının yavaş olduğunu düşünmüyorum. Genellikle kullanıcı becerilerine gelir, kullanıcı Arc'ın nasıl kullanılacağını biliyorsa, o kadar yavaş değildir. Bunu söyledikten sonra, her bir aracın performansına göre duruma göre dikkate alınması gerektiğini de belirtmeliyim. Diğeri ise Arc'ın ilk olarak CBS sahnesindeydi. Birincisi (nispeten QGIS'e göre) her zaman böceklerle ve yeni nesil biraz daha iyidir, bu durumda daha hızlı, ama tüm bunlar sadece benim kişisel görüşüm.


2
Sidenote: ArcGIS çekirdeğinin en azından bir kısmının hala Fortran'da yazıldığından şüpheleniyorum (belirli sayısal görevler için C'den daha hızlı değilse, C'den daha hızlı olmadığı söylentiler): Kullanan bir .NET konsol uygulaması çalıştırırsanız ArcObjects ve Ctrl+Cbir ArcObjects işlem yaparken bastığınızda , Fortran çalışma zamanı kitaplığından bir ileti alırsınız.
stakx

5
Ayrıca, nitrit cesur ayrıntılara girmeden, ArcObjects erken birlikte çalışabilirlik çerçevelerinden biri olan COM'a dayanır ve özellikle yönetilen (örn. .NET) ve yönetilmeyen (C ++) kodu arasında kendi performans yüklerine sahiptir.
blah238

4
@stakx Fortran kodunda, en azından tarama tarafında (Uzamsal Analist) ek yük var. SA'ya Fortran eklentileri geliştirdim ve her zaman en az beş kat daha hızlı çalıştıklarını gördüm. Yıllar geçtikçe, orijinal (vintage 70'ler ve 80'ler) kodunu entegre etmek için yapılmış olan sarmalayıcılar üzerindeki sarmalayıcılar üzerindeki sarmalayıcı katmanları, Arc * performansı üzerinde büyüyen bir yük yaratmıştır.
whuber

6

Bu ArcGIS performansı ile ilgilidir: ArcMap, ArcCatalog, bol kaynaklara sahip yeni bir dizüstü bilgisayarda açmak çok yavaş mı? kısmen performans sorunlarının bir kısmını açıklayabilir. Bu iş parçacığı, donanım, ağ ve lisans yapılandırmasının ArcGIS performansı üzerinde nasıl önemli bir etkiye sahip olabileceğini gösterir. Muhtemelen, rapor edilen hız farklılıklarından bazıları, yeteneklerdeki doğal farklılıklardan ziyade bu tür faktörlerden kaynaklanabilir.

(Yorumlar kaybolma eğiliminde olduğundan yanıt bağlantısı olarak gönderildi.)


1
Yanıtların ve yorumların burada farklı amaçları vardır, Dan. Haklısın, yorumların ikinci sınıf statüsü var. Bunun bir nedeni, gerçekten yararlı cevapları vurgulamaktır. Cevap olmayan her şey, bir soruyu cevaplanabilir hale getirmek veya bir soruyu veya cevabı geliştirmek için bir çaba olmalıdır: bu gerçekten parlak olsa bile bir yorumdur.
whuber

Laboratuvarlarımızdaki sürümün bilgisayarımda çalıştığım deneme sürümünden daha iyi çalıştığını kabul ediyorum ...
GeoH2O

2

Kurumsal düzeyde verilerle çalışıyorum (örneğin tüm Türkiye için ilgi noktası verileri) ve bazen sadece veri kümesini kontrol etmek için bu işleme ihtiyacım var.

ArcGIS ile performansınızı artırmak istiyorsanız, önerebileceğim birkaç şey var;

Her zaman yansıtılan verileri kullanın. Benim için mükemmel postgresql çalışır ile coğrafi veri tabanları veya ArcSDE kullanın.

Coğrafi veritabanı dosyası ve mümkünse arcsde kullanmak işlemlerinizin hızını artırır. QGIS ve ArcMap ile kişisel deneyimim aslında tam tersi. Harita üzerinde 3 milyon puan kazanmak neredeyse dakikalar alıyor. Öte yandan ArcMap onları saniyeler içinde işler.

Sadece benim görüşüm.


Neden 3 milyon puan verin? Katmanın 3 milyon noktaya sahip olduğunu ve bazılarının sizin görüşünüzde olduğunu düşünüyorsanız, bu QGIS'de de hızlıdır, ancak uzamsal bir dizine ihtiyacınız olacaktır. Ancak, çok fazla geometri oluşturmaya çalışırken hata yaptığınızda QGIS'in durmasının oldukça zor olabileceğini kabul ediyorum. Oluşturmayı esc ile öldürürken bile, önceden oluşturulmuş geoemtries bazen orada asılı kalır.
Nicklas Avén
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.