ArcGISとQGISのパフォーマンス速度がそれほど異なるのはなぜですか?


17

OK私はプログラマーではなく、多才なGISユーザーです。QGISはC ++およびArcGISで記述されていることを知っていますか?しかし、最近のほとんどのタスクでは、無料であるだけでなく、ユーザーエクスペリエンスが非常に優れているため、常にQGISを使用しようとしています。

そこにあるすべてのGISの達人は、これら2つのシステムの速度が異なる理由をいくつか教えていただけますか?正直なところ、ArcGIS 10を使用すると、その速度のために苦労します。また、8 GBのRAMを搭載したPCがあります。


3
遅いと感じる側面についての詳細情報を提供できますか?たとえば、データの閲覧、ラスターの分析、ジオプロセシングなど?
スティーブンリード

一般的な経験は非常に遅い..iシェープファイルの追加... arctoolboxなどを開くことを意味します
GeoH2O

2
ArcGISは、明らかに.NETで記述されていません。これは、主に...にボルトで固定、他の多くのものをC ++で書かれている
Devdatta Tengshe

1
@StephenLead、ogr2ogrシェープファイル(ref)の変換時に、Arcgisの36倍の速度でクロックを記録しました。同じタスクでQGISがbarebones ogr2ogrよりも少し遅くなると思いますが、ogrを使用しているのでそれほど大きくはありません(どちらにしても証拠は歓迎です)。
マットウィルキー

3
おそらく会話の再:特定の速度の違いは、おそらくチャットで他の場所で実行できますか?chat.stackexchange.com/transcript/message/3510767#3510767
マットウィルキー

回答:


10

ArcGISは非常に肥大化しているようです。私は、Arcview 3.2からArcGIS 8.0に移行するときにパフォーマンスが大幅に低下したことを覚えています。当時、私はESRIが以前のArc / InfoコードをWindowsに移行し、パフォーマンスのいくつかのコーナーをカットする必要があると考えていましたが、それが本当かどうかはわかりません。このサイトで、Arcview 3.3の方がArcGIS 10よりも劇的に高速である機能についていくつかの例を参照したことを思い出します。これは起動時間などとは関係ありません。 '。クリックして待機することは、スキルとは関係ありません。

実際のところ、ArcGISはパフォーマンスを考慮して作成されておらず、各バージョンは、すでにオーバーロードされたコードプラットフォームにますます多くの機能を追加しようと試みていると思います。


12

私はQGISにそれほど精通していませんが、拡張性の点でArcGISとどのように比較するのか疑問に思います。残念ながら、拡張性とパフォーマンスの間には少なくともいくつかのトレードオフがあるようです。ArcGISの拡張性を感じるために私が見つけた最善の方法は、レジストリにあるEsriのCOMコンポーネントカテゴリを調べることです。

各カテゴリは、ユーザーがEsriインターフェイスを実装するクラスを含むdllを登録できる場所を表します。あり、多くの種類のは。これらのカテゴリにはドッグフードも含まれています-Esriは、サードパーティのカスタマイズを発見するためだけでなく、すぐに使用できる機能を見つけるためにも使用します。これにより、非常にきめ細かいレベルのカスタマイズが可能になりますが、実行時にこれらすべてのきめ細かいものを検出してロードする必要があることも意味します。移転費用が何であるかはわかりませんが、それはかなりの額に違いありません。

ここに画像の説明を入力してください

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

Visual Studioでdllを作成すると、ロードするdllのベースアドレス指定できる場所があります。ロードされるさまざまなサイズのdllが非常に多くあるため、ArcObjectsのカスタマイズのために事前にこれを知ることは非常に困難です。それでも、dllをメモリにロードする場所を指示する構成ファイルを作成できるかどうか疑問に思います。その場合、ユーザーが通常使用するDLLをロードしたarcmapを実行すると、dllベースアドレスを構成ファイルに書き込むルーチンを実行できます。そうすれば、arcmapが起動すると、それらのアドレスにロードすることで再配置を回避できます。再び64ビットでこれが問題になることはありません。

10.0では、Esriはアドインを導入しました。アドインのカテゴリははるかに小さく、検出はWindowsレジストリに依存しません。代わりに、アドインdllが圧縮され、既知のフォルダーに配置されます。Windowsレジストリを介して発見されたdllとパフォーマンスの点でこれがどのように比較されるのかわかりません。主な目標は、非管理者によるインストールを許可することだったと思います。

私は質問がデスクトップ製品に言及していると仮定しています。新しいArcGIS Runtime製品は、はるかに軽量です。MapObjectsの代替として説明されていると聞きました。それがどのように進化するかを見るのは面白いでしょう。EsriがWPFランタイムに拡張性を導入する場合、Visual Studioがアセンブリのリストを作成するときに使用するディスカバリーに同じメカニズムを使用しないことを望みます。初めて「参照を追加...」をクリックすると、非常に遅くなります。


3
数年前、Esriの営業担当者から、Esriには世界最大のCOMライブラリがあり、Microsoftが構築したものよりも簡単に大きいと言われました。それ以来、Arcgis Desktopの動きの鈍さの一部は、必要に応じて必要な断片をつかむのではなく、すべてのライブラリを一度に読み込むことであると考えていました。
マットウィルキー

@mattwilkie ArcMapの起動時間は以前よりずっと遅くなりました。それを改善するために、彼らはジャストインタイム拡張機能を導入しました。確かではありませんが、最初にデータ追加ダイアログを起動したときにロードされるgxオブジェクトでも同様のアプローチが取られていると思います。
カーククイケンドール

うーん。起動時間は私にとっては速くありません(データからではなく、メモリから行くので、それは単なる認識かもしれません)。タスクバーのArcmap 10ボタンをクリックしてから、何かを実行する準備が整うまで(「最後のマップを読み込む」ウィザードの機能をオフにして)17秒。2番目のセッションは約12秒です。これは、C:ハードディスクをSSDに交換した後です。Quantumは最初の実行に4秒、次の実行に2秒かかります。
マットウィルキー

@mattwilkieうん、同時に新しいツールバーなどを追加したので、ジャストインタイムからのパフォーマンスの向上は、新しいソフトウェア機能に起因する遅延を完全には補償していません。考慮すべきその他の要因:ライセンスサーバーにアクセスしていますか?RAMはどれくらいですか?normal.mxtを削除/名前を変更すると高速ですか?(最初の起動では再作成に時間がかかるため、削除後に2回テストします)カスタマイズをインストールしましたか?
カーククイケンドール

1
カーク:素晴らしい答えです。@mattwilkie:それは本当です。Ms Officeは、ある時点で約400(+?)COMオブジェクトを持っていました。今では、GeoDatabase自体にそれだけの数があると思います。真実は、良くも悪くも、ESRIは少しCOMに夢中になったということです。当分の間、それは安全な決定であったと思います。
ラギヤセルBurhum

8

スレッドを復活させることは許しますが、ArcMapとQGISでユーザーエクスペリエンスがどのように異なるかについて、具体的な例を挙げることができます。

今日、私は小さな国に250メートルの間隔でポイントグリッドを構築し、ポイントグリッドを国の国境ポリゴンにクリップし、いくつかのラスタの値をポイントグリッドに関連付ける必要がありました。

ArcMapでは、データを完成したデータセットにダウンロードするのに約10分かかりました。QGIS(ヴロツワフ)では、プログラムはポリゴンでグリッドをクリップするだけで2回クラッシュし、3回目の試行で完了する前に1時間実行されました。これは、4つのデュアルコアと6Gb RAMを搭載したボックス上にあります。

私はQGISが大好きで、ArcMapを使用するのは面倒ですが、QGISが私のニーズを満たさない一般的なユースケースがたくさんあります。

今、このパフォーマンスのギャップを解決できるパフォーマンスチューニングのアドバイスがあれば、私はすべて耳にします。

クリス


同意しましたが、価値があるため、私は常に最初にQGISに
群がり、

1
私にはバグのように聞こえます。クラッシュは、パフォーマンスの低下の尺度ではなく、何か問題の兆候です。QGISの人々に報告してください
NicklasAvén12年

このポイントグリッドを構築する面積はどれくらいですか?QGIS(1.9)の57kポイントで同じタイプの操作を問題なく実行しました。
シンバマング

@Simbamanguこれはホンジュラス周辺のバウンディングボックス用で、およそ50万ポイントです。Nicklas_Avenで:撮影したポイント; 確実に複製する時間があれば、提出します。
iamchriskelley

6

Arcは.NETで書かれているとは思いません。ArcobjectsはC ++で記述されています。Arcは、多くの高度なGUI、ヘルプツール、アドオンなどを使用するため、遅くなる可能性があります。QGISは優れたソフトウェアですが、初心者には役立つ有用な機能がいくつか欠けています。また、ESRI(Arcobjects)の基本的なラベルツールが遅いとは思いません。通常、ユーザーのスキルに依存します。ユーザーがArcの使用方法を知っていれば、それほど遅くはありません。そうは言っても、すべてのツールは、そのパフォーマンスに関してケースバイケースで検討されるべきであることに言及しなければなりません。もう1つは、ArcがGISシーンで最初に登場したことです。最初は(QGISに比べて)常にバグがあり、次世代のほうが少し優れています。この場合は高速ですが、これはすべて個人的な意見です。


2
サイドノート:ArcGISのコアの少なくとも一部は、Fortran(特定の数値タスクではCよりも高速ではないにしても高速であると噂されています)を使用していると思われます。 ArcObjectsでCtrl+C、ArcObjectsが何らかの操作を実行しているときに押すと、Fortranランタイムライブラリからメッセージが表示されます。
stakx

5
また、詳細を詳しく説明することなく、ArcObjectsは初期の相互運用性フレームワークの1つであるCOMに基づいており、特にマネージコード(.NETなど)とアンマネージコード(C ++)をマーシャリングする場合に独自のパフォーマンス上の負担があります。
blah238

4
@stakxそのFortranコードには、少なくともラスター側にオーバーヘッドがあります(Spatial Analyst)。SAにFortranアドオンを開発しましたが、それらは常に少なくとも5倍高速で実行されることがわかりました。長年にわたって、元の(ビンテージ70年代と80年代の)コードを統合するために構築されたラッパーのラッパーのラッパーのレイヤーは、Arc *のパフォーマンスにますます大きな負担をかけています。
whuber

6

これは、ArcGISのパフォーマンスに関連しています 。ArcMap、ArcCatalogは、十分なリソースがある新しいラップトップで開くのに非常に時間がかかりますか? これにより、パフォーマンスの問題の一部が説明される場合があります。そのスレッドは、ハードウェア、ネットワーク、およびライセンス構成がArcGISのパフォーマンスに大きな影響を与える方法を示しています。おそらく、報告された速度の違いの一部は、固有の機能の違いではなく、そのような要因によるものである可能性があります。

(コメントが失われる傾向があるため、回答リンクとして投稿されました。)


1
ここでは、返信とコメントの目的が異なります、ダン。あなたの言うとおり、コメントには二流のステータスがあります。1つの理由は、本当に役立つ答えを強調することです。答えではないものは、質問に答えられるようにするか、質問や回答を改善するための努力である必要があります。それは、本当に素晴らしい場合でも、コメントです。
whuber

ラボのバージョンは、PCで実行している試用版よりもうまく機能することに同意しました
...-GeoH2O

2

私は企業レベルのデータ(たとえばトルコ全体の興味のあるポイントのデータ)を扱っていますが、データセットをチェックするためだけに、レンダリングが必要な場合もあります。

ArcGISでパフォーマンスを改善したい場合、アドバイスできることはほとんどありません。

常に投影データを使用してください。postgresqlでジオデータベースまたはArcSDEを使用するのが最適です。

ファイルジオデータベースと可能であればarcsdeを使用すると、操作の速度が向上します。私のQGISとArcMapでの個人的な経験は実際は逆です。マップ上に300万ポイントをレンダリングするのにほぼ数分かかります。一方、ArcMapは数秒でそれらをレンダリングします。

ただ私の意見。


なぜ300万ポイントをレンダリングするのですか?レイヤーに300万個のポイントがあり、それらの一部がビューにある場合、QGISでも高速ですが、空間インデックスが必要になります。しかし、あまりにも多くのジオメトリをレンダリングしようとするミスをすると、QGISを停止するのは非常に困難になる可能性があることに同意します。escを使用してレンダリングを強制終了した場合でも、既にレンダリングされたジオメトリがハングすることがあります。
ニックラスアベン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.