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

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

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

17
Ласкаво просимо до GIS SE! У вашій відповіді ви не розглядаєте питання "Чому швидкість продуктивності між ArcGIS і QGIS настільки різна?" замість того, щоб вказати тільки вимірювання експлуатації продуктивності QGIS 2.6. Отже, я збираюся перетворити його на коментар.
додано Автор UnkwnTech, джерело
Звучить дещо, як адвокація, а не питання
додано Автор Dave Anderson, джерело
@StephenLead, увімкнув ogr2ogr у 36 разів швидше, ніж Arcgis при перетворенні шейпфайлів ( ref ). Я сподіваюся, QGIS буде трохи повільніше, ніж barebones ogr2ogr на одне і те ж завдання, але не набагато, оскільки він використовує OGR (доказ в будь-якому випадку вітається).
додано Автор Greg, джерело
можливо, розмова повторно: конкретні відмінності в швидкості можуть бути проведені в інших місцях, можливо, в чаті? чат.
Чи можете ви надати більше інформації про те, які аспекти ви знаходите повільно? Наприклад, перегляд даних, аналіз растрів, геообработка і т.д.?
додано Автор Henry Taylor, джерело
ArcGIS, безумовно, не написано в .NET. В основному написано на мові C ++, і багато інших матеріалів увімкнено ...
додано Автор Henrik, джерело
Загальний досвід дуже повільний ..i означає додавання шейпфайлів ... відкриття arctoolbox і т.д.
додано Автор Cell-o, джерело
Тепер QGIS 2.6 дуже швидко працює навіть з файлами shp. Наприклад, QGIS візуалізує файл shp з приблизно 500000 полігонів протягом 7 секунд у перший раз і протягом 3 секунд на другому.
додано Автор Felix Ruzzoli, джерело

6 Відповіді

Я не дуже знайомий з QGIS, але мені цікаво, як він порівнюється з ArcGIS з точки зору розширюваності. На жаль, здається, щонайменше деякі компроміси між розширюваністю та продуктивністю. Найкращий спосіб, який я знайшов, щоб отримати відчуття розширюваності ArcGIS, - це ознайомитися з темою Esri: vs.85% 29.aspx "rel =" noreferrer "> Категорії компонентів COM , знайдені в реєстрі.

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

enter image description here

C: Програмні файли (x86), ArcGIS, Desktop10.0, Бен \ t

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

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

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

12
додано
@mattwilkie Так, в той же час вони додавали нові панелі інструментів і т.д., тому будь-які показники продуктивності від простого часу, ймовірно, не повністю компенсували затримки, що виникають внаслідок нових функцій програмного забезпечення. Також необхідно враховувати інші фактори: чи доступ до сервера ліцензій? Скільки оперативної пам'яті? Чи є це швидше, якщо ви видаляєте/перейменовуєте ваш звичайний. (Повторіть тест після видалення з моменту першого запуску. Потрібен час для його повторного створення.) Ви встановили налаштування?
додано Автор saint_groceon, джерело
@mattwilkie Час запуску ArcMap був набагато повільнішим. Щоб покращити його, вони представили додано Автор saint_groceon, джерело
Кірк: чудова відповідь. @mattwilkie: це правда. У певному пункті пані офіс мав близько 400 (+?) COM-об'єктів. Думаю, що вже зараз GeoDatabase має багато. Істина в тому, що для кращого або для гіршого, ESRI пішов трохи COM божевільно. Я думаю, що це було безпечне рішення.
додано Автор FlySwat, джерело
хм. Час запуску для мене не швидше (надано, що я йду з пам'яті, а не даних, так що це може бути просто сприйняття). 17s, натиснувши кнопку Arcmap 10 на панелі завдань, поки не буде готово зробити щось (з вимкненою справою майстра "завантаження останньої карти"). Друга сесія - близько 12 с. Це відбувається після заміни жорсткого диска C: SSD. Quantum займає 4s для першого запуску та 2s для наступного.
додано Автор Greg, джерело
Декілька років тому мені сказали, що Esri має найбільшу COM-бібліотеку на Землі, яка може бути більшою, ніж будь-яка компанія Microsoft. Я припустив, що з того часу ця частина млявості Arcgis Desktop завантажує всю цю бібліотеку відразу, а не просто захоплює біти і шматки, необхідні на вимогу.
додано Автор Greg, джерело

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

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

10
додано

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

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

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

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

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

Кріс

7
додано
Звучить мені як помилка. Аварії - це не міра поганої роботи, а ознака чогось неправильного. Повідомте про це людям QGIS
додано Автор Lars Mæhlum, джерело
Наскільки велика область ви будуєте цю точку сітки? Просто запустили один і той же тип роботи на 57k точок у QGIS (1.9) без проблем.
додано Автор dpollitt, джерело
погодився, але для того, що варто, я завжди потрапляю до QGIS, а якщо він не працює, то повернемося до ArcGIS
додано Автор Cell-o, джерело
@Simbamangu це було для обмежувальної коробки навколо Гондурасу - приблизно півмільйона пунктів. на Nicklas_Aven: Точка прийнята; якщо я встигаю надійно відтворити, то подаю.
додано Автор Peter Shor, джерело

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

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

6
додано
Відповіді та коментарі мають різні цілі, Ден. Ви маєте рацію, коментарі мають статус другого класу. Одна з причин - підкреслити справді корисні відповіді. Все, що не є відповіддю, повинно бути зусиллям, щоб дати відповідь на питання або покращити питання або відповідь: це коментар, навіть якщо він дійсно геніальний.
додано Автор whuber, джерело
Погоджено, що версія в наших лабораторіях працює краще, ніж пробна версія, яку я використовую на моєму комп'ютері ...
додано Автор Cell-o, джерело

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

6
додано
Sidenote: Я підозрюю, що принаймні частини ядра ArcGIS все ще пишуться у Fortran (за чутками, так швидко, якщо не швидше, ніж C для певних числових завдань): якщо ви запускаєте консольну програму .NET, яка використовує ArcObjects, і ви натискаєте Ctrl + C , поки ArcObjects виконує певну операцію, ви отримаєте повідомлення від бібліотеки середовища виконання Fortran.
додано Автор Ian Robinson, джерело
@stakx У цьому коді Fortran існують накладні витрати, принаймні на растровій стороні (Spatial Analyst). Я розробив додатки Fortran до SA і знайшов, що вони завжди бігали принаймні п'ять разів швидше. Протягом багатьох років, шари обгортки на обгортках на обгортках, які були побудовані для інтеграції оригінального (vintage 70-х та 80-х років) коду, створили зростаюче навантаження на продуктивність Arc *.
додано Автор whuber, джерело
Крім того, без втручання в подрібнені деталі, ArcObjects базується на COM , одній з ранніх можливостей взаємодії фреймворки, і має свої власні навантаження на продуктивність, особливо при розподілі між керованим (наприклад, .NET) і некерованим (C ++) кодом.
додано Автор blah238, джерело

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

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

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

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

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

2
додано
Навіщо робити 3 мільйони балів? Якщо ви маєте на увазі, що шар має 3 мільйони точок, а деякі з них на ваш погляд, це теж швидко у QGIS, але вам знадобиться просторовий індекс. Але я погоджуюся, що QGIS може бути дуже важко зупинити, коли ви робите помилку, намагаючись зробити дуже багато геометрії. Навіть при вбивстві рендерингу з esc інколи вивішуються геометрії.
додано Автор Lars Mæhlum, джерело