Ok, nie jestem programistą, ale płodnym użytkownikiem GIS. Wiem, że QGIS jest napisany w C ++, a ArcGIS w ??? ale ostatnio do większości moich zadań zawsze staram się korzystać z QGIS nie tylko dlatego, że jest bezpłatny, ale także dlatego, że jego wrażenia z użytkowania są tak dobre.
Wszyscy Guru GIS, czy możesz mi powiedzieć kilka powodów różnicy prędkości między tymi dwoma systemami? Szczerze mówiąc, boli mnie korzystanie z ArcGIS 10 ze względu na jego szybkość i mam komputer z 8 GB pamięci RAM.
qgis
arcgis-desktop
arcgis-10.0
performance
ux
GeoH2O
źródło
źródło
ogr2ogr
co 36 razy szybciej niż arcgis przy konwersji Shapefiles ( ref ). Oczekuję, że QGIS byłby trochę wolniejszy niż ogr2ogr na boso przy tym samym zadaniu, ale niewiele, ponieważ używa ogr (dowody są mile widziane).Odpowiedzi:
ArcGIS wydaje się bardzo rozdęty. Pamiętam ogromny spadek wydajności podczas migracji z Arcview 3.2 do ArcGIS 8.0, i w wielu miejscach wciąż istnieje. W tym czasie myślałem, że ma to wiele wspólnego z migracją wcześniejszego kodu Arc / Info do systemu Windows i koniecznością zmniejszenia wydajności, ale nie jestem pewien, czy to prawda. Pamiętam, że widziałem kilka przykładów na tej stronie dotyczących funkcji, które są wciąż znacznie szybsze w Arcview 3.3 niż ArcGIS 10. Nie ma to nic wspólnego z czasami uruchamiania itp. I nie zgadzam się z poprzednią odpowiedzią niż z umiejętnościami użytkownika „. Klikanie i czekanie nie ma nic wspólnego z umiejętnościami.
Myślę, że w rzeczywistości ArcGIS nie został napisany z myślą o wydajności, a każda wersja próbuje wrzucić coraz więcej funkcji na już przeciążoną platformę kodową.
źródło
QGIS nie znam się tak dobrze, ale zastanawiam się, jak wypada w porównaniu z ArcGIS pod względem rozszerzalności. Niestety wydaje się, że istnieją przynajmniej pewne kompromisy między rozszerzalnością a wydajnością. Najlepszym sposobem, w jaki udało mi się poznać rozszerzalność ArcGIS, jest przyjrzenie się kategoriom komponentów Esri w rejestrze.
Każda kategoria reprezentuje miejsce, w którym użytkownicy mogą rejestrować biblioteki dll zawierające klasy implementujące interfejs Esri. Istnieje wiele kategorii. Te kategorie zawierają również karmę dla psów - Esri używa ich nie tylko do odkrywania dostosowań innych firm, ale także po wyjęciu z pudełka. Chociaż zapewnia to bardzo drobiazgowy poziom dostosowania, oznacza to również, że wszystkie te drobne ziarna muszą zostać odkryte i załadowane w czasie wykonywania. Nie jestem pewien, jaki jest koszt przeprowadzki , ale musi być znaczny.
C:\Program Files (x86)\ArcGIS\Desktop10.0\Bin\Categories.exe
Podczas tworzenia biblioteki DLL w programie Visual Studio istnieje miejsce, w którym można określić adres bazowy biblioteki DLL do załadowania. Ponieważ ładuje się tak wiele bibliotek DLL o różnych rozmiarach, wiedząc, że z wyprzedzeniem dostosowanie ArcObjects byłoby bardzo trudne. Nadal zastanawiam się, czy można utworzyć plik konfiguracyjny z instrukcją, gdzie dll powinien zostać załadowany do pamięci. Jeśli tak, gdy użytkownik uruchomi arcmap z załadowanymi bibliotekami DLL, których zwykle używa, może uruchomić procedurę zapisującą podstawowe adresy bibliotek DLL w pliku konfiguracyjnym. W ten sposób, gdy arcmap się uruchomi, może uniknąć przeniesienia poprzez załadowanie do tych adresów. Z drugiej strony może 64-bitowe to nie będzie miało znaczenia.
O 10.0 Esri wprowadziło dodatki. Kategorie dodatków są znacznie mniejsze, a wykrywanie nie zależy od rejestru systemu Windows. Zamiast tego biblioteki DLL dodatków są spakowane i umieszczone w znanym folderze. Nie jestem pewien, jak to pod względem wydajności porównuje się z bibliotekami DLL wykrytymi przez rejestr systemu Windows. Myślę, że głównym celem było umożliwienie instalacji przez osoby niebędące administratorami.
Zakładam, że pytanie dotyczy produktu Desktop. Nowy produkt ArcGIS Runtime jest znacznie lżejszy. Słyszałem, że jest to opisywane jako zamiennik MapObjects. Ciekawie będzie zobaczyć, jak się rozwija. Jeśli Esri wprowadzi rozszerzalność dla środowiska wykonawczego WPF, mam nadzieję, że nie używają tego samego mechanizmu wykrywania używanego przez program Visual Studio, gdy zapełni on listę zestawów. Pierwsze kliknięcie „Dodaj referencję ...” stało się boleśnie powolne.
źródło
Wybacz mi za wskrzeszenie wątku, ale mogę podać konkretny przykład tego, jak różnią się wrażenia użytkownika w ArcMap i QGIS.
Dzisiaj musiałem zbudować siatkę punktów z 250-metrowym odstępem w małym kraju, przypiąć siatkę punktów do wielokąta granicy kraju i powiązać wartości kilku rastrów z siatką punktów.
W ArcMap zajęło mi to około 10 minut od pobrania danych do gotowego zestawu danych. W QGIS (Wrocław) program rozbił się dwukrotnie, po prostu przycinając siatkę wielokątem, a następnie działał przez godzinę, zanim zakończył się przy trzeciej próbie. To jest na pudełku z 4 podwójnymi rdzeniami i 6 GB pamięci RAM.
Uwielbiam QGIS i denerwuje mnie używanie ArcMap, ale znajduję wiele typowych przypadków użycia, w których QGIS nie spełnia moich potrzeb.
Teraz, jeśli ktoś ma jakieś porady dotyczące dostrajania wydajności, które mogłyby rozwiązać tę lukę w wydajności, jestem cały w uszach.
Chris
źródło
Nie sądzę, że Arc jest napisany w .NET. Obiekty Arcobject są napisane w C ++. Arc może działać wolniej z powodu korzystania z wielu zaawansowanych GUI, narzędzi pomocniczych, dodatków itp. QGIS jest świetnym oprogramowaniem, ale brakuje mu przydatnych funkcji, które mogą być dobre dla początkujących. Nie sądzę też, aby podstawowe narzędzia lavel w ESRI (Arcobjects) były wolne. Zwykle sprowadza się do umiejętności użytkownika, jeśli użytkownik wie, jak korzystać z Arc, wcale nie jest tak wolny. Powiedziawszy to, powinienem również wspomnieć, że każde narzędzie powinno być rozpatrywane indywidualnie w odniesieniu do jego działania. Po drugie, Arc był pierwszy na scenie GIS. Po pierwsze (w stosunku do QGIS) zawsze występują błędy, a kolejna generacja jest nieco lepsza, w tym przypadku szybsza, ale to wszystko tylko moja osobista opinia.
źródło
Ctrl+C
gdy ArcObjects wykona jakąś operację, otrzymasz wiadomość z biblioteki wykonawczej Fortran.Dotyczy to wydajności ArcGIS: ArcMap, ArcCatalog bardzo wolno otwiera się na nowym laptopie z dużymi zasobami? co może częściowo tłumaczyć niektóre problemy z wydajnością. Wątek ten pokazuje, w jaki sposób konfiguracja sprzętu, sieci i licencjonowania może mieć znaczący wpływ na wydajność ArcGIS. Być może niektóre z zgłaszanych różnic prędkości mogą wynikać z takich czynników, a nie z wewnętrznych różnic w możliwościach.
(Wysłany jako link do odpowiedzi, ponieważ komentarze gubią się).
źródło
Pracuję z danymi na poziomie przedsiębiorstwa (np. Danymi interesującymi dla całej Turcji) i czasami po prostu sprawdzam zestaw danych, potrzebuję tego renderowania.
Jeśli chcesz poprawić swoją wydajność dzięki ArcGIS, jest kilka rzeczy, które mógłbym poradzić;
Zawsze używaj prognozowanych danych. Używaj geobaz lub ArcSDE, a postgresql działa dla mnie idealnie.
Korzystanie z geobazy plików i, jeśli to możliwe, arcsde zwiększa szybkość twoich operacji. Moje osobiste doświadczenia z QGIS i ArcMap są wręcz przeciwne. Ponieważ prawie 3 minuty zajmuje wyświetlenie 3 milionów punktów na mapie. Z drugiej strony ArcMap renderuje je w ciągu kilku sekund.
Tylko moja opinia.
źródło