Mengapa kecepatan kinerja antara ArcGIS dan QGIS sangat berbeda?

17

Ok saya bukan seorang programmer tetapi pengguna SIG yang produktif. Saya tahu bahwa QGIS ditulis dalam C ++ dan ArcGIS dalam ??? tetapi untuk sebagian besar tugas saya akhir-akhir ini saya selalu mencoba menggunakan QGIS bukan hanya karena gratis tetapi karena pengalaman penggunanya sangat bagus.

Semua GIS Gurus di luar sana dapatkah Anda memberi tahu saya beberapa alasan untuk perbedaan kecepatan antara kedua sistem ini? Jujur itu menyakitkan saya untuk menggunakan ArcGIS 10 karena kecepatannya dan saya punya PC dengan 8 GB RAM.

GeoH2O
sumber
3
Bisakah Anda memberikan lebih banyak informasi tentang aspek mana yang Anda temukan lambat? Misalnya, browsing untuk data, menganalisis raster, geoprocessing, dll?
Stephen Lead
Pengalaman umum sangat lambat .. maksudku menambahkan shapefile ... membuka arctoolbox dll
GeoH2O
2
ArcGIS jelas tidak ditulis dalam .NET. Ini sebagian besar ditulis dalam C ++ dengan banyak hal lainnya yang dikunci ...
Devdatta Tengshe
1
@StephenLead, saya telah mencatat waktu ogr2ogr36 kali lebih cepat dari Arcgis ketika mengkonversi shapefile ( ref ). Saya berharap QGIS akan sedikit lebih lambat dari barebone ogr2ogr pada tugas yang sama, tetapi tidak banyak karena menggunakan ogr (bukti baik cara diterima).
matt wilkie
3
mungkin percakapan kembali: perbedaan kecepatan tertentu dapat dilakukan di tempat lain, mungkin mengobrol? chat.stackexchange.com/transcript/message/3510767#3510767
matt wilkie

Jawaban:

10

ArcGIS tampaknya sangat kembung. Saya ingat kinerja yang luar biasa ketika bermigrasi dari Arcview 3.2 ke ArcGIS 8.0, dan di banyak tempat masih ada. Pada waktu itu saya pikir itu ada hubungannya dengan ESRI memigrasi kode Arc / Info sebelumnya ke Windows dan harus memotong beberapa sudut dalam kinerja, tetapi saya tidak yakin apakah itu benar. Saya ingat melihat beberapa contoh di situs ini tentang fungsi-fungsi yang secara dramatis masih lebih cepat di Arcview 3.3 daripada ArcGIS 10. Ini tidak ada hubungannya dengan waktu startup, dll. Dan saya tidak setuju dengan jawaban sebelumnya daripada yang berkaitan dengan 'keterampilan pengguna' ' Mengklik dan menunggu tidak ada hubungannya dengan keterampilan.

Saya pikir kenyataannya adalah bahwa ArcGIS tidak ditulis dengan kinerja dalam pikiran dan setiap versi terus berusaha untuk melemparkan lebih banyak fungsi ke platform kode yang sudah kelebihan beban.

blindjesse
sumber
12

Saya tidak begitu terbiasa dengan QGIS, tapi saya bertanya-tanya bagaimana hal ini dibandingkan dengan ArcGIS dalam hal ekstensibilitas. Sayangnya tampaknya ada setidaknya beberapa pengorbanan antara ekstensibilitas dan kinerja. Cara terbaik yang saya temukan untuk merasakan ekstensibilitas ArcGIS adalah dengan melihat pada kategori komponen COM Esri yang ditemukan dalam registri.

Setiap kategori mewakili tempat di mana pengguna dapat mendaftarkan dll yang berisi kelas yang mengimplementasikan antarmuka Esri. Ada banyak kategori. Kategori-kategori ini juga mengandung makanan anjing - Esri menggunakannya tidak hanya untuk menemukan penyesuaian pihak ketiga, tetapi juga fungsionalitas di luar kotak. Meskipun ini memberikan tingkat penyesuaian yang sangat halus, itu juga berarti bahwa semua butiran halus ini perlu ditemukan dan dimuat pada saat dijalankan. Saya tidak yakin berapa biaya relokasi , tetapi harus signifikan.

masukkan deskripsi gambar di sini

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

Ketika Anda membuat dll di Visual Studio ada tempat di mana Anda dapat menentukan alamat dasar untuk memuat dll. Karena ada begitu banyak dll dari berbagai ukuran yang dimuat mengetahui ini sebelumnya untuk kustomisasi ArcObjects akan sangat sulit. Namun, saya bertanya-tanya apakah file config dapat dibuat menginstruksikan di mana dll harus dimuat ke dalam memori. Jika demikian, setelah pengguna menjalankan arcmap dengan dll yang dimuat, ia biasanya akan menggunakan ia dapat menjalankan rutin yang akan menulis alamat dasar dll ke file konfigurasi. Dengan begitu ketika arcmap dimulai, ia bisa menghindari relokasi dengan memasukkan alamat-alamat itu. Kemudian lagi mungkin dengan 64 bit ini tidak masalah.

Pada 10.0 Esri memperkenalkan Add-in. Kategori peralatan tambahan jauh lebih kecil, dan penemuan tidak bergantung pada registri windows. Sebagai gantinya, add-in dll di-zip dan ditempatkan di folder yang dikenal. Saya tidak yakin bagaimana ini membandingkan kinerja-bijaksana dengan dll yang ditemukan melalui windows registry. Saya pikir tujuan utamanya adalah mengizinkan instalasi oleh non-admin.

Saya berasumsi pertanyaannya merujuk pada produk Desktop. Produk ArcGIS Runtime yang baru jauh lebih ringan. Saya pernah mendengarnya digambarkan sebagai pengganti MapObjects. Akan menarik untuk melihat bagaimana itu berkembang. Jika Esri memang memperkenalkan ekstensibilitas untuk WPF Runtime, saya harap mereka tidak menggunakan mekanisme yang sama untuk penemuan yang digunakan oleh Visual Studio ketika mengisi daftar majelis. Itu pertama kali mengklik "Tambahkan Referensi ..." telah menjadi sangat lambat.

Kirk Kuykendall
sumber
3
Saya diberitahu oleh seorang tenaga penjualan Esri beberapa tahun yang lalu bahwa Esri memiliki perpustakaan COM terbesar di dunia, lebih mudah lebih besar daripada apa pun yang telah dibangun oleh Microsoft. Saya mengasumsikan sejak saat itu bahwa bagian dari kelesuan Arcgis Desktop memuat semua perpustakaan itu sekaligus daripada hanya mengambil potongan-potongan yang dibutuhkan sesuai permintaan.
matt wilkie
@mattwilkie Waktu startup untuk ArcMap dulu jauh lebih lambat. Untuk memperbaikinya mereka memperkenalkan ekstensi tepat waktu . Saya tidak yakin, tapi saya pikir pendekatan yang sama diambil dengan objek gx yang dimuat ketika Anda menjalankan dialog menambahkan data pertama kali.
Kirk Kuykendall
hmm Waktu startup tidak lebih cepat bagi saya (mengingat saya pergi dari memori, bukan data, jadi itu hanya persepsi). 17s dari mengklik tombol Arcmap 10 di Taskbar sampai siap melakukan sesuatu (dengan wizard "memuat peta terakhir" dimatikan). Sesi 2 adalah sekitar 12-an. Ini setelah mengganti hard disk C: dengan SSD. Quantum mengambil 4 untuk menjalankan pertama dan 2 untuk berikutnya.
matt wilkie
@mattwilkie Ya, pada saat yang sama mereka telah menambahkan bilah alat baru, dll., sehingga setiap peningkatan kinerja dari just-in-time kemungkinan belum sepenuhnya dikompensasi atas keterlambatan yang dihasilkan dari fitur perangkat lunak baru. Juga faktor lain yang perlu dipertimbangkan: Apakah mengakses server lisensi? Berapa banyak RAM? Apakah lebih cepat jika Anda menghapus / mengganti nama normal.mxt Anda? (uji kedua kalinya setelah menghapusnya karena startup pertama akan membutuhkan waktu untuk membuatnya kembali) Sudahkah Anda menginstal kustomisasi?
Kirk Kuykendall
1
Kirk: jawaban yang bagus. @mattwilkie: itu benar. Ms Office, pada satu titik, memiliki sekitar 400 (+?) Objek COM. Saya pikir sekarang, GeoDatabase dengan sendirinya memiliki banyak. Kebenarannya adalah bahwa baik atau buruk, ESRI menjadi agak gila COM. Saya pikir untuk saat ini, itu adalah keputusan yang aman dan sehat.
Ragi Yaser Burhum
8

Maafkan saya karena menghidupkan kembali utas, tetapi saya dapat memberikan contoh spesifik tentang bagaimana pengalaman pengguna berbeda untuk ArcMap dan QGIS.

Hari ini saya perlu membangun sebuah grid titik dengan jarak 250 meter melintasi sebuah negara kecil, memotong grid poin ke poligon perbatasan negara, dan mengaitkan nilai beberapa raster ke grid titik.

Di ArcMap, ini membutuhkan waktu sekitar 10 menit, dari mengunduh data ke set data yang sudah jadi. Di QGIS (Wroclaw), Program macet dua kali hanya memotong grid dengan poligon, lalu berlari selama satu jam sebelum menyelesaikan pada upaya ketiga. Ini ada pada kotak dengan 4 dual-core dan 6Gb RAM.

Saya suka QGIS, dan itu mengganggu saya untuk menggunakan ArcMap, tapi saya menemukan banyak kasus penggunaan umum di mana QGIS tidak memenuhi kebutuhan saya.

Sekarang, jika ada orang yang memiliki saran penyesuaian kinerja yang dapat menyelesaikan kesenjangan kinerja ini, saya setuju.

Chris

iamchriskelley
sumber
setuju tetapi untuk apa nilainya saya selalu berduyun-duyun ke QGIS pertama dan jika tidak bekerja kembali ke ArcGIS
GeoH2O
1
Kedengarannya seperti bug bagi saya. Kecelakaan bukanlah ukuran kinerja yang buruk tetapi merupakan gejala dari sesuatu yang salah. Laporkan ke orang
Nicklas Avén
Seberapa besar area yang Anda bangun dengan grid titik ini? Hanya menjalankan jenis operasi yang sama pada poin 57k di QGIS (1.9) tanpa masalah.
Simbamangu
@Simbamangu ini untuk kotak pembatas di sekitar Honduras - kira-kira setengah juta poin. di Nicklas_Aven: Poin diambil; jika saya punya waktu untuk mereproduksi dengan andal saya akan kirim.
iamchriskelley
6

Saya tidak berpikir bahwa Arc ditulis dalam .NET. Arcobjects ditulis dalam C ++. Arc mungkin lebih lambat karena menggunakan banyak GUI canggih, alat bantu, add-on dll. QGIS adalah perangkat lunak yang hebat tetapi tidak memiliki beberapa fitur berguna yang mungkin baik untuk pemula. Juga saya tidak berpikir bahwa alat lavel dasar dalam ESRI (Arcobjects) lambat. Biasanya karena keterampilan pengguna, jika pengguna tahu cara menggunakan Arc, itu tidak lambat sama sekali. Karena itu, saya harus menyebutkan juga bahwa setiap alat harus dipertimbangkan berdasarkan kasus per kasus mengenai kinerjanya. Hal lain adalah bahwa, Arc pertama kali berada di panggung GIS. Pertama (relatif ke QGIS) selalu dengan bug dan generasi berikutnya sedikit lebih baik, dalam hal ini lebih cepat, tetapi semua ini hanya pendapat pribadi saya.

Tomek
sumber
2
Sidenote: Saya menduga bahwa setidaknya sebagian inti ArcGIS masih ditulis dalam Fortran (yang dikabarkan secepat, jika tidak lebih cepat dari, C untuk tugas numerik tertentu): Jika Anda menjalankan aplikasi .NET konsol yang menggunakan ArcObjects, dan Anda menekan Ctrl+Cketika ArcObjects melakukan beberapa operasi, Anda akan mendapatkan pesan dari pustaka runtime Fortran.
stakx
5
Juga tanpa masuk ke rincian seluk beluk, ArcObjects didasarkan pada COM , salah satu kerangka kerja interoperabilitas awal, dan memiliki beban kinerjanya sendiri terutama ketika menyusun antara kode yang dikelola (misalnya .NET) dan tidak dikelola (C ++).
blah238
4
@stakx Ada overhead dalam kode Fortran itu, setidaknya di sisi raster (Analis Tata Ruang). Saya telah mengembangkan add-ons Fortran ke SA dan menemukan mereka selalu berjalan setidaknya lima kali lebih cepat. Selama bertahun-tahun, lapisan pembungkus pada pembungkus pada pembungkus yang telah dibangun untuk mengintegrasikan kode asli (vintage 70-an dan 80-an) telah menciptakan beban yang semakin meningkat pada kinerja Arc *.
whuber
6

Ini terkait dengan kinerja ArcGIS: ArcMap, ArcCatalog sangat lambat untuk dibuka pada laptop baru dengan sumber daya yang cukup? yang mungkin merupakan bagian dari beberapa masalah kinerja. Utas itu menunjukkan bagaimana konfigurasi perangkat keras, jaringan, dan lisensi dapat memiliki efek substansial pada kinerja ArcGIS. Mungkin, beberapa perbedaan kecepatan yang dilaporkan dapat disebabkan oleh faktor-faktor tersebut daripada perbedaan yang melekat dalam kemampuan.

(Diposting sebagai tautan jawaban, karena komentar cenderung hilang.)

Komunitas
sumber
1
Balasan dan komentar memiliki tujuan berbeda di sini, Dan. Anda benar, komentar memiliki status kelas dua. Salah satu alasannya adalah untuk menekankan jawaban yang benar-benar bermanfaat. Apa pun yang bukan jawaban harus merupakan upaya untuk membuat pertanyaan dijawab atau untuk meningkatkan pertanyaan atau jawaban: itu adalah komentar, bahkan ketika itu benar-benar brilian.
whuber
Setuju versi di lab kami bekerja lebih baik daripada versi percobaan yang saya jalankan di PC saya ...
GeoH2O
2

Saya bekerja dengan data tingkat perusahaan (data point of interest untuk seluruh Turki misalnya) dan kadang-kadang hanya untuk memeriksa dataset, saya memerlukan rendering itu.

Jika Anda ingin meningkatkan kinerja Anda dengan ArcGIS, ada beberapa hal yang dapat saya sarankan;

Selalu gunakan data yang diproyeksikan. Gunakan geodatabases atau ArcSDE dengan postgresql berfungsi sempurna untuk saya.

Menggunakan file geodatabase dan jika mungkin arcsde meningkatkan kecepatan operasi Anda. Pengalaman pribadi saya dengan QGIS dan ArcMap sebenarnya sebaliknya. Karena Dibutuhkan hampir beberapa menit untuk membuat 3 juta poin di peta. Di sisi lain ArcMap membuat mereka dalam hitungan detik.

Hanya pendapat saya saja.

Anıl Çelik
sumber
Mengapa menghasilkan 3 juta poin? Jika Anda bermaksud bahwa layer tersebut memiliki 3 juta poin dan beberapa di antaranya ada dalam pandangan Anda, itu juga cepat di QGIS, tetapi Anda akan memerlukan indeks spasial. Tapi saya setuju bahwa QGIS bisa sangat sulit untuk berhenti ketika Anda melakukan kesalahan dengan mencoba membuat terlalu banyak geometri. Bahkan ketika membunuh rendering dengan esc geoemtries yang sudah diberikan kadang-kadang tergantung di sana.
Nicklas Avén