ArcGIS와 QGIS 간의 성능 속도가 다른 이유는 무엇입니까?


17

좋아, 나는 프로그래머가 아니라 많은 GIS 사용자이다. QGIS는 C ++로 작성되었으며 ArcGIS는 ??? 그러나 최근 대부분의 작업에서 항상 QGIS는 무료 일뿐만 아니라 사용자 경험이 너무 좋아서 항상 사용하려고합니다.

모든 GIS 전문가가이 두 시스템의 속도 차이에 대한 몇 가지 이유를 말해 줄 수 있습니까? 솔직히 속도 때문에 ArcGIS 10을 사용하는 것이 고통스럽고 RAM이 8GB 인 PC가 있습니다.


3
느낀 부분에 대한 자세한 정보를 제공 할 수 있습니까? 예를 들어 데이터 탐색, 래스터 분석, 지오 프로세싱 등?
Stephen Lead

일반적인 경험은 매우 느립니다 ..i shapefiles 추가 ... 아크 툴박스 열기 등
GeoH2O

2
ArcGIS는 분명히 .NET으로 작성되지 않았습니다. 그것은 주로 ...에 볼트 다른 것들의 많은 C ++로 작성
Devdatta Tengshe을

1
@StephenLead, ogr2ogrshapefile을 변환 할 때 Arcgis보다 36 배 더 빠릅니다 ( ref ). QGIS는 동일한 작업에서 베어 본 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로 마이그레이션하고 성능의 일부 부분을 잘라야하는 것과 관련이 있다고 생각했지만 그것이 사실인지 확실하지 않습니다. ArcGIS 10보다 Arcview 3.3에서 여전히 훨씬 빠른 기능에 대한이 사이트에서 몇 가지 예를 본 것을 기억합니다. 이것은 시작 시간 등과는 관련이 없습니다. 그리고 '사용자 기술과 관련이있는 것보다 이전 답변에 동의하지 않습니다. '. 클릭하고 기다리는 것은 기술과 관련이 없습니다.

실제로 ArcGIS는 성능을 염두에두고 작성되지 않았으며 각 버전은 이미 과부하 된 코드 플랫폼에 점점 더 많은 기능을 제공하려고합니다.


12

QGIS에 익숙하지는 않지만 확장 성 측면에서 ArcGIS와 어떻게 비교되는지 궁금합니다. 불행하게도 확장 성과 성능 간에는 약간의 상충 관계가있는 것 같습니다. ArcGIS 확장성에 대한 느낌을 얻는 가장 좋은 방법 은 레지스트리 에서 Esri의 COM 구성 요소 범주를 살펴 보는 것 입니다.

각 범주는 사용자가 Esri 인터페이스를 구현하는 클래스가 포함 된 dll을 등록 할 수있는 장소를 나타냅니다. 있습니다 많은 종류의가. 이러한 범주에는 개밥 도 포함됩니다. Esri는이를 사용하여 타사 사용자 지정을 검색 할뿐만 아니라 기본 기능을 사용합니다. 이는 매우 세밀한 수준의 사용자 지정을 제공하지만 런타임에 이러한 모든 미세 입자를 검색하고로드해야 함을 의미합니다. 재배치 비용이 무엇인지 잘 모르겠지만 중요해야합니다.

여기에 이미지 설명을 입력하십시오

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

Visual Studio에서 dll을 만들 때 dll을로드 할 기본 주소지정할 수있는 곳이 있습니다 . ArcObjects 커스터마이제이션을 위해 이것을 미리 알면 서로 다른 크기의 dll이 너무 많이로드되기 때문에 매우 어려울 것입니다. 여전히 dll을 메모리에로드 해야하는 위치를 알려주는 구성 파일을 만들 수 있는지 궁금합니다. 그렇다면, 사용자가 일반적으로 사용하는 dll이로드 된 상태에서 아크 맵을 실행하면 dll 기본 주소를 구성 파일에 쓰는 루틴을 실행할 수 있습니다. 이렇게하면 아크 맵이 시작될 때 해당 주소로로드하여 재배치 를 피할 수 있습니다. 그런 다음 다시 64 비트로 이것이 중요하지 않을 것입니다.

10.0에서 Esri는 추가 기능을 도입했습니다. 추가 기능의 범주는 훨씬 작으며 검색은 Windows 레지스트리에 의존하지 않습니다. 대신 추가 기능 dll이 압축되어 알려진 폴더에 저장됩니다. 이것이 Windows 레지스트리를 통해 발견 된 dll과 성능 측면을 어떻게 비교하는지 잘 모르겠습니다. 주된 목표는 관리자가 아닌 사람이 설치할 수 있도록하는 것이 었습니다.

질문이 데스크탑 제품에 관한 것이라고 가정합니다. 새로운 ArcGIS Runtime 제품은 훨씬 가볍습니다. 나는 그것이 MapObjects를 대체한다고 묘사 한 것을 들었다. 그것이 어떻게 진화하는지 보는 것은 흥미로울 것입니다. Esri가 WPF 런타임에 대한 확장 성을 도입하면 Visual Studio가 어셈블리 목록을 채울 때 사용하는 검색에 동일한 메커니즘을 사용하지 않기를 바랍니다. "참조 추가 ..."를 처음 클릭하면 고통스럽게 느려졌습니다.


3
몇 년 전 Esri 영업 담당자는 Esri가 Microsoft에서 구축 한 것보다 훨씬 큰 COM 라이브러리를 보유하고 있다고 전했습니다. 그 이후 Arcgis Desktop의 부진의 일부는 필요에 따라 필요한 비트와 조각을 잡는 것이 아니라 모든 라이브러리를 한 번에로드한다고 가정했습니다.
매트 윌키

@mattwilkie ArcMap의 시작 시간이 훨씬 느려졌습니다. 이를 개선하기 위해 적시에 확장 기능 을 도입했습니다 . 확실하지는 않지만 처음으로 데이터 추가 대화 상자를 시작할 때로 드되는 gx 객체에 대해 비슷한 접근법이 사용된다고 생각합니다.
Kirk Kuykendall

흠. 시작 시간은 나에게 더 빠르지 않습니다 (데이터가 아닌 메모리에서 가고 있기 때문에 인식 일 수 있습니다). 17s는 작업 표시 줄에서 Arcmap 10 버튼을 클릭하여 무언가를 할 준비가 될 때까지 ( "마지막 맵로드"마법사 기능을 끈 상태). 두 번째 세션은 약 12 ​​초입니다. 이것은 C : 하드 디스크를 SSD로 교체 한 후입니다. Quantum은 첫 실행시 4 초, 다음 실행에는 2 초가 걸립니다.
매트 윌키

@mattwilkie 예, 동시에 새로운 툴바 등을 추가했기 때문에 적시에 얻은 성능 향상으로 인해 새로운 소프트웨어 기능으로 인한 지연이 완전히 보상되지 않았을 수 있습니다. 고려해야 할 다른 요소들 : 라이센스 서버에 액세스하고 있습니까? RAM이 얼마나됩니까? normal.mxt를 삭제하거나 이름을 바꾸면 더 빠릅니까? (처음 시작하면 다시 작성하는 데 시간이 걸리므로 삭제 후 두 번째 테스트) 사용자 정의를 설치 했습니까?
Kirk Kuykendall

1
커크 : 좋은 대답입니다. @ mattwilkie : 사실입니다. Ms Office는 한 시점에 약 400 (+?) 개의 COM 개체를 가졌습니다. 지금까지 GeoDatabase 자체에는 많은 것이 있다고 생각합니다. 진실은 ESRI가 더 좋거나 나쁘게 COM에 미친 것입니다. 당분간은 안전한 건전한 결정이라고 생각합니다.
Ragi Yaser Burhum

8

스레드를 부활시켜 주신 것을 용서해주십시오. 그러나 ArcMap과 QGIS의 사용자 경험이 어떻게 다른지에 대한 구체적인 예를들 수 있습니다.

오늘 저는 작은 국가에 250 미터 간격의 포인트 그리드를 구축하고 포인트 그리드를 국가 경계 다각형에 클립하고 여러 래스터의 값을 포인트 그리드에 연결해야했습니다.

ArcMap에서는 데이터 다운로드에서 완성 된 데이터 세트까지 약 10 분이 걸렸습니다. QGIS (브로츠와프)에서 프로그램은 다각형으로 그리드를 클리핑하여 두 번 충돌 한 다음 한 번 실행 한 후 세 번째 시도를 완료했습니다. 이것은 4 개의 듀얼 코어와 6Gb RAM이있는 박스에 있습니다.

나는 QGIS를 좋아하고 ArcMap을 사용하도록 자극하지만 QGIS가 내 요구를 충족시키지 못하는 일반적인 사용 사례를 많이 발견합니다.

이 성능 차이를 해결할 수있는 성능 조정 조언이있는 사람이라면 누구나 귀를 기울입니다.

크리스


동의하지만 그만한 가치가있는 것은 항상 QGIS에 먼저 무리를 짓고 ArcGIS로 돌아 가지 않는 경우
GeoH2O

1
나에게 벌레처럼 들린다. 충돌은 성능 저하의 척도가 아니라 잘못된 증상입니다. QGIS 사람들에게보고
Nicklas Avén

이 포인트 그리드를 얼마나 큰 면적으로 구성하고 있습니까? QGIS (1.9)의 57k 포인트에서 동일한 유형의 작업을 문제없이 실행했습니다.
Simbamangu

@Simbamangu 이것은 온두라스 주변의 경계 상자를위한 것이 었습니다. Nicklas_Aven에서 : 포인트 획득; 안정적으로 재현 할 시간이 있다면 제출하겠습니다.
iamchriskelley

6

Arc가 .NET으로 작성되었다고 생각하지 않습니다. Arcobject는 C ++로 작성되었습니다. 많은 고급 GUI, 도움말 도구, 애드온 등을 사용하면 Arc가 느려질 수 있습니다. QGIS는 훌륭한 소프트웨어이지만 초보자에게 유용한 유용한 기능이 없습니다. 또한 ESRI (Arcobjects)의 기본 lavel 도구가 느리다고 생각하지 않습니다. 일반적으로 사용자 기술에 달려 있습니다. 사용자가 Arc 사용법을 알고 있다면 전혀 느리지 않습니다. 또한 모든 도구는 성능에 따라 사례별로 고려되어야한다고 언급해야합니다. 다른 것은 아크가 GIS 장면에서 처음 이었다는 것입니다. 첫 번째 (QGIS와 관련하여)는 항상 버그가 있으며이 경우에는 더 빠르지 만 차세대는 조금 나아지지만이 모든 것은 제 개인적인 견해 일뿐입니다.


2
참고 사항 : ArcGIS 코어의 적어도 일부가 여전히 포트란으로 작성되어 있다고 생각합니다 (특정 수치 작업의 경우 C보다 빠르지는 않지만 빠르다는 소문이 있습니다). ArcObjects를 누르고 Ctrl+CArcObjects가 일부 작업을 수행하는 동안 을 누르면 Fortran 런타임 라이브러리에서 메시지가 표시됩니다.
stakx

5
또한 중요한 세부 사항에 들어 가지 않고 ArcObjects는 초기 상호 운용성 프레임 워크 중 하나 인 COM을 기반으로 하며 특히 관리되는 (예 : .NET) 코드와 관리되지 않는 (C ++) 코드를 마샬링 할 때 자체 성능 부담이 있습니다.
blah238

4
@stakx Fortran 코드에는 최소한 래스터 쪽 (Spatial Analyst)에 오버 헤드가 있습니다. SA에 Fortran 추가 기능을 개발했으며 항상 5 배 이상 빠르게 실행되는 것을 발견했습니다. 수년에 걸쳐, 원래 (빈티지 70 및 80 년대) 코드를 통합하기 위해 구축 된 래퍼의 래퍼에있는 래퍼의 레이어는 Arc * 성능에 대한 부담을 증가 시켰습니다.
whuber

6

이것은 ArcGIS 성능과 관련이 있습니다. ArcMap, ArcCatalog는 리소스가 많은 새 랩톱에서 열 속도가 너무 느립니까? 일부 성능 문제가 원인 일 수 있습니다. 이 스레드는 하드웨어, 네트워크 및 라이센싱 구성이 ArcGIS 성능에 실질적인 영향을 줄 수있는 방법을 보여줍니다. 아마도보고 된 속도 차이 중 일부는 기능의 고유 한 차이가 아니라 그러한 요소 때문일 수 있습니다.

주석이 손실되는 경향이 있으므로 답변 링크로 게시됩니다.


1
답장과 의견은 여기서 다른 목적을 가지고 있습니다, Dan. 당신 말이 맞아요. 댓글은 2 등입니다. 한 가지 이유는 진정으로 유용한 답변을 강조하는 것입니다. 답변이 아닌 것은 질문에 대한 답을 얻거나 질문이나 답변을 개선하기위한 노력이어야합니다. 그것은 정말 훌륭 할 때에도 주석입니다.
whuber

실험실의 버전이 PC에서 실행중인 평가판보다 더 잘 작동
한다고 동의했습니다

2

엔터프라이즈 수준의 데이터 (예 : 터키 전체의 관심 장소 데이터)로 작업하고 때로는 데이터 집합을 확인하기 위해 렌더링이 필요합니다.

ArcGIS로 성능을 향상 시키려면 조언 할 것이 몇 가지 있습니다.

항상 투영 된 데이터를 사용하십시오. postgresql과 함께 지오 데이터베이스 또는 ArcSDE를 사용하면 나에게 완벽합니다.

파일 지오 데이터베이스와 가능하면 arcsde를 사용하면 작업 속도가 빨라집니다. QGIS와 ArcMap에 대한 나의 개인적인 경험은 실제로 반대입니다. 지도에서 3 백만 점을 렌더링하는 데 거의 몇 분이 걸립니다. 반면에 ArcMap은 몇 초 내에 렌더링합니다.

그냥 내 의견.


왜 3 백만 점을 렌더링합니까? 레이어에 3 백만 포인트가 있고 그 중 일부가 사용자의 시야에 있다는 것을 의미한다면 QGIS에서도 빠르지 만 공간 인덱스가 필요합니다. 그러나 너무 많은 형상을 렌더링하려는 실수를 저지르면 QGIS를 멈추기가 매우 어려울 수 있습니다. esc로 렌더링을 종료 할 때도 이미 렌더링 된 지오메트리가 종종 중단됩니다.
Nicklas Avén
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.