Чому швидкість продуктивності між ArcGIS та QGIS настільки різна?


17

Гаразд Я не програміст, а плідний користувач ГІС. Я знаю, що QGIS написаний на C ++, а ArcGIS в ??? але для більшості моїх завдань останнім часом я завжди намагаюся використовувати QGIS не тільки тому, що він безкоштовний, але через те, що його досвід роботи настільки хороший.

Всі гуру ГІС там, чи можете ви сказати мені деякі причини різниці у швидкості між цими двома системами? Чесно кажучи, болить мені використовувати ArcGIS 10 через його швидкість, і у мене є ПК з 8 ГБ оперативної пам’яті.


3
Чи можете ви надати більше інформації про те, які аспекти у вас є повільними? Наприклад, перегляд даних, аналіз растрових даних, геообробка тощо?
Стівен Ведучий

Загальний досвід дуже повільний ... я маю на увазі додавання форм-файлів ... відкриття arctoolbox тощо
GeoH2O

2
ArcGIS напевно не пишеться у .NET. Здебільшого написано на C ++, з багатьма іншими речами,
зафіксованими

1
@StephenLead, я ogr2ogrперетворював на 36 разів швидше, ніж Arcgis, при перетворенні форм-файлів ( ref ). Я думаю, що QGIS буде трохи повільніше, ніж barebones ogr2ogr при тому самому завданні, але не набагато, оскільки він використовує ogr (свідчення в будь-якому випадку вітається).
matt wilkie

3
можливо, розмова про: конкретні перепади швидкості могли бути перенесені в іншому місці, можливо, в чаті? chat.stackexchange.com/transcript/message/3510767#3510767
matt wilkie

Відповіді:


10

ArcGIS здається дуже роздутим. Я пам’ятаю величезний хіт продуктивності під час переходу з Arcview 3.2 на ArcGIS 8.0, і в багатьох місцях він все ще існує. У той час я думав, що це має багато спільного з тим, що ESRI мігрує раніше Arc / Info-код до Windows і повинен вирізати деякі кути в продуктивності, але я не впевнений, чи це правда. Я пригадую, що на цьому веб-сайті я бачив кілька прикладів щодо функцій, які в Arcview 3.3 все ще значно швидше, ніж ArcGIS 10. Це не має нічого спільного з часом запуску і т. Д. І я не згоден з попередньою відповіддю, ніж це стосується навичок користувача '. Клацання і очікування не мають нічого спільного з майстерністю.

Я думаю, що реальність полягає в тому, що ArcGIS не був написаний з врахуванням продуктивності, і кожна версія продовжує намагатися викидати все більше функціональних можливостей на вже перевантажену кодову платформу.


12

Я не такий знайомий з QGIS, але мені цікаво, як він порівнюється з ArcGIS з точки зору розширюваності. На жаль, мабуть, принаймні деякі компроміси між розширюваністю та продуктивністю. Найкращий спосіб, щоб я відчув розширюваність ArcGIS, - це ознайомитись із категоріями компонентів Есрі, що знаходяться в реєстрі.

Кожна категорія являє собою місце, де користувачі можуть реєструвати клітини, що містять класи, що реалізують інтерфейс Esri. Є цілі багато категорій. Ці категорії також містять корми для собак - Esri використовує їх не тільки для відкриття сторонніх налаштувань, але і для функціональності поза коробкою. Хоча це забезпечує дуже дрібнозернистий рівень налаштування, це також означає, що всі ці дрібні зерна потрібно виявити та завантажити під час виконання. Я не впевнений, яка вартість переїзду , але вона повинна бути значною.

введіть тут опис зображення

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

Коли ви створюєте dll у Visual Studio, є місце, де ви можете вказати базову адресу для dll для завантаження. Оскільки завантажується стільки dll різного розміру, знаючи це достроково для налаштування ArcObjects було б дуже складно. Тим не менш, мені цікаво, чи не міг би бути створений файл конфігурації, який вказує, де dll слід завантажувати в пам'ять. Якщо так, то, як тільки користувач має arcmap, що працює з завантаженими dlls, які він зазвичай використовує, він може запустити процедуру, яка запише базові адреси dll до файлу config. Таким чином, коли Arcmap запускається, це може уникнути переміщення , завантажуючи в ці адреси. Тоді, можливо, з 64 бітом це не має значення.

О 10.0 Esri представив надбудови. Категорії надбудов значно менші, а відкриття не покладається на реєстр Windows. Натомість, додаткові модулі накопичуються та розміщуються у відомій папці. Я не впевнений, як це порівнює ефективність роботи з DLL, виявленими через реєстр Windows. Я думаю, що головна мета полягала в тому, щоб дозволити встановлення не адміном.

Я припускаю, що питання стосується продукту Desktop. Новий продукт ArcGIS Runtime набагато менший. Я чув, як це описано як заміну для MapObjects. Буде цікаво подивитися, як воно розвивається. Якщо Esri дійсно введе розширюваність для WPF Runtime, я сподіваюся, що вони не використовуватимуть той самий механізм для відкриття, який використовувався Visual Studio, коли він заповнює список збірок. Цей перший раз натискання "Додати довідку ..." стало болісно повільним.


3
Мені кілька років тому мені повідомив представник відділу продажу Esri, що в Esri є найбільша бібліотека COM на землі, легко більша за все, що навіть Microsoft створила. З того часу я припускав, що частина млявості Arcgis Desktop завантажує всю цю бібліотеку одразу, а не просто захоплює шматочки та шматочки, необхідні на вимогу.
matt wilkie

@mattwilkie Час запуску для ArcMap коливався набагато повільніше. Для її вдосконалення вони ввели розширення, яке було вчасно . Я не впевнений, але я думаю, що подібний підхід застосовується з gx-об’єктами, які завантажуються під час першого запуску діалогового вікна додавання даних.
Кірк Куйкендалл

хм. Час запуску для мене не швидший (за умови, що я йду з пам’яті, а не даних, тому це може бути просто сприйняття). 17 років, натиснувши кнопку Arcmap 10 на панелі завдань, доки вона не буде готова зробити щось (вимкнено майстер "завантаження останньої карти"). 2-й сеанс - близько 12 с. Це відбувається після заміни жорсткого диска C: SSD. Quantum займає 4 секунди для першого запуску та 2 секунди для наступного.
matt wilkie

@mattwilkie Так, в той же час вони додали нові панелі інструментів і т. д., тому будь-які підвищення продуктивності, що з'явилися вчасно, швидше за все, не повністю компенсували затримки внаслідок нових функцій програмного забезпечення. Також інші фактори, які слід враховувати: це доступ до сервера ліцензій? Скільки оперативної пам’яті? Це швидше, якщо ви видалите / перейменуєте звичайний.mxt? (тестуйте другий раз після видалення, оскільки для першого запуску знадобиться час, щоб відновити його) Ви встановили налаштування?
Кірк Куйкендалл

1
Кірк: чудова відповідь. @mattwilkie: це правда. Одного разу у пані Офіс було близько 400 (+?) Об’єктів COM. Я думаю, на сьогоднішній день у GeoDatabase сама по собі існує стільки. Правда полягає в тому, що на краще або на гірше ESRI трохи пішла на COM. Я вважаю, що це було безпечне рішення.
Рагі Ясер Бурхум

8

Пробачте за те, що воскресив нитку, але я можу навести конкретний приклад того, як відрізняється досвід роботи для ArcMap та QGIS.

Сьогодні мені потрібно було побудувати точкову сітку з відстані 250 метрів у невеликій країні, відрізати точкову сітку на полігоні кордону країни та пов’язати значення декількох растрових з точковою сіткою.

У ArcMap від завантаження даних до готового набору даних у мене пішло близько 10 хвилин. У QGIS (Вроцлав) програма двічі зазнала краху, просто обрізавши сітку з багатокутника, потім пробігла протягом години до завершення третьої спроби. Це на коробці з 4 двоядерними ядрами та 6 Гб оперативної пам’яті.

Я люблю QGIS, і це дратує мене використовувати ArcMap, але я знаходжу багато випадків поширеного використання, коли QGIS не відповідає моїм потребам.

Тепер, якщо хтось має поради щодо налаштування продуктивності, які могли б вирішити цей розрив у виконанні, я все чую.

Кріс


погодився, але для чого варто завжди завжди сходити до QGIS, і якщо він не працює там назад до ArcGIS
GeoH2O

1
Мені звучить помилка. Збої - це не показник поганої роботи, а симптом чогось неправильного. Повідомте про це людей QGIS
Nicklas Avén

На яку велику площу ви будуєте цю точкову сітку? Просто безпроблемно виконував однотипний операцію на 57k балів у QGIS (1.9).
Simbamangu

@Simbamangu це було для обмежувального поля навколо Гондурасу - приблизно півмільйона балів. у Nicklas_Aven: Точка взята; якщо я встигну відтворити надійно, я піду.
iamchriskelley

6

Я не думаю, що Arc написана в .NET. Аркобекти написані на C ++. Дуга може бути повільнішою завдяки використанню багатьох сучасних графічних інтерфейсів, інструментів довідки, доповнень тощо. QGIS - це відмінне програмне забезпечення, але у ньому відсутні деякі корисні функції, які можуть бути корисними для початківців. Крім того, я не думаю, що основні інструменти на рівні Lavel в ESRI (Arcobjects) повільні. Зазвичай зводиться до навичок користувача, якщо користувач знає, як користуватися Arc, це зовсім не так повільно. Сказавши це, я також зазначу, що кожен інструмент повинен розглядатися в кожному конкретному випадку щодо його ефективності. Інша справа, що Арк був першим на сцені ГІС. По-перше (відносно QGIS) завжди з помилками, а наступне покоління трохи краще, в цьому випадку швидше, але все це лише моя особиста думка.


2
Sidenote: Я підозрюю, що принаймні частини ядра ArcGIS все ще записані у Fortran (за чутками, це так само швидко, якщо не швидше, ніж C для певних числових завдань): Якщо ви запускаєте консольну програму .NET, яка використовує ArcObjects, і ви натискаєте, Ctrl+Cпоки ArcObjects виконує якусь операцію, ви отримаєте повідомлення з бібліотеки виконання Fortran.
stakx

5
Крім того, не вдаючись до деталей з грізними елементами, ArcObjects базується на COM , одній із ранніх структур інтероперабельності, і має власне обтяження продуктивності, особливо при маршалінгу між керованим (наприклад, .NET) та некерованим (C ++) кодом.
blah238

4
@stakx У цьому коді Фортран є, щонайменше, на растровій стороні (Spatial Analyst). Я розробив додатки Fortran для SA і виявив, що вони завжди бігали принаймні в п’ять разів швидше. Протягом багатьох років шари обгортки на обгортках на обгортках, які були побудовані для інтеграції оригінального (старовинного 70-х та 80-х) коду, створювали все більше навантаження на продуктивність Arc *.
whuber

6

Це стосується продуктивності ArcGIS: ArcMap, ArcCatalog дуже повільно відкривається на новому ноутбуці з достатньою кількістю ресурсів? що може частково пояснювати деякі проблеми ефективності. Цей потік показує, як конфігурація апаратного забезпечення, мережі та ліцензування може мати істотний вплив на продуктивність ArcGIS. Можливо, деякі з повідомлених відмінностей у швидкості могли бути наслідком таких факторів, а не властивих їм відмінностей у можливостях.

(Опубліковано як посилання на відповідь, оскільки коментарі, як правило, губляться.)


1
Відповіді та коментарі тут мають різні цілі, Ден. Ви маєте рацію, коментарі мають статус другого класу. Одна з причин - підкреслити справді корисні відповіді. Все, що не є відповіддю, має бути зусиллям, щоб зробити питання відповідальним або покращити питання або відповідь: це коментар, навіть коли він справді геніальний.
whuber

Погоджено, що версія в наших лабораторіях працює краще, ніж пробна версія, на якій я працюю на своєму комп'ютері ...
GeoH2O

2

Я працюю з даними про рівень підприємства (наприклад, дані про інтереси для всієї Туреччини), а іноді просто перевіряю набір даних, мені потрібна ця візуалізація.

Якщо ви хочете покращити свої показники роботи з ArcGIS, я можу порадити кілька речей;

Завжди використовуйте прогнозовані дані. Використовувати бази даних геоданих або ArcSDE з postgresql ідеально підходить для мене.

Використання файлової бази даних та, якщо можливо, arcsde збільшує швидкість ваших операцій. Мій особистий досвід роботи з QGIS та ArcMap насправді навпаки. Оскільки для виведення на карту 3 мільйони очок потрібні майже хвилини. З іншого боку, ArcMap видає їх протягом декількох секунд.

Просто моя думка.


Чому надають 3 мільйони балів? Якщо ви маєте на увазі, що у шару є 3 мільйони точок, а деякі з них на ваш погляд, це швидко і в QGIS, але вам знадобиться просторовий індекс. Але я погоджуюся, що QGIS може бути досить важко зупинити, коли ти робиш помилку, намагаючись надати занадто багато геометрій. Навіть коли вбивають візуалізацію за допомогою esc, там уже вивішені геоемтри іноді висять.
Nicklas Avén
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.