ทำไมความเร็วของประสิทธิภาพระหว่าง ArcGIS และ QGIS จึงต่างกัน?


17

ตกลงฉันไม่ใช่โปรแกรมเมอร์ แต่เป็นผู้ใช้ GIS ที่อุดมสมบูรณ์ ฉันรู้ว่า QGIS เขียนใน C ++ และ ArcGIS ใน ??? แต่สำหรับงานส่วนใหญ่ของฉันเมื่อเร็ว ๆ นี้ฉันพยายามใช้ QGIS ไม่เพียงเพราะมันฟรี แต่เนื่องจากความจริงที่ว่าประสบการณ์ผู้ใช้นั้นดีมาก

ปรมาจารย์ GIS ทั้งหมดคุณสามารถบอกเหตุผลบางอย่างเกี่ยวกับความแตกต่างของความเร็วระหว่างระบบทั้งสองนี้ได้หรือไม่? จริงๆแล้วมันทำให้ฉันเจ็บปวดที่จะใช้ ArcGIS 10 เนื่องจากความเร็วและฉันมีพีซีที่มี RAM 8 GB


3
คุณสามารถให้ข้อมูลเพิ่มเติมเกี่ยวกับแง่มุมที่คุณค้นหาได้ช้าหรือไม่? เช่นการค้นหาข้อมูลการวิเคราะห์แรสเตอร์การประมวลผลทางภูมิศาสตร์ ฯลฯ ?
สตีเฟ่นนำ

ประสบการณ์ทั่วไปช้ามาก .. ฉันหมายถึงการเพิ่มรูปร่าง ... เปิด arctoolbox ฯลฯ
GeoH2O

2
ArcGIS ไม่ได้เขียนแน่นอนใน. NET ส่วนใหญ่จะเขียนด้วยภาษา C ++ พร้อมกับสิ่งอื่น ๆ อีกมากมายที่ติดอยู่ ...
Devdatta Tengshe

1
@StephenLead ฉันโอเวอร์คล็อกogr2ogrได้เร็วกว่า Arcgis 36 เท่าเมื่อทำการแปลงไฟล์รูปร่าง ( อ้างอิง ) ฉันคาดหวังว่า 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 ก่อนหน้านี้และต้องลดประสิทธิภาพในการทำงาน แต่ฉันไม่แน่ใจว่าจริงหรือไม่ ฉันจำได้ว่าเห็นตัวอย่างบางส่วนในเว็บไซต์นี้เกี่ยวกับฟังก์ชั่นที่ยังคงเร็วกว่าใน Arcview 3.3 มากกว่า ArcGIS 10 ซึ่งไม่เกี่ยวกับเวลาเริ่มต้นเป็นต้นและฉันไม่เห็นด้วยกับคำตอบก่อนหน้านี้ที่เกี่ยวข้องกับทักษะผู้ใช้ ' คลิกและรอไม่มีอะไรเกี่ยวข้องกับทักษะ

ฉันคิดว่าความจริงคือ ArcGIS ไม่ได้เขียนด้วยประสิทธิภาพในใจและแต่ละรุ่นพยายามที่จะโยนฟังก์ชันการทำงานมากขึ้นไปยังแพลตฟอร์มโค้ดที่มีการโอเวอร์โหลดอยู่แล้ว


12

ฉันไม่คุ้นเคยกับ QGIS แต่ฉันสงสัยว่ามันเปรียบเทียบกับ ArcGIS ในแง่ของความสามารถในการขยาย น่าเสียดายที่อย่างน้อยดูเหมือนว่าจะมีการแลกเปลี่ยนระหว่างการขยายและประสิทธิภาพ วิธีที่ดีที่สุดที่ฉันได้พบเพื่อเพิ่มความรู้สึกถึงความสามารถในการขยายตัวของ ArcGIS คือการดูที่หมวด COM ส่วนประกอบของ Esri ที่พบในรีจิสทรี

แต่ละหมวดหมู่แสดงถึงสถานที่ที่ผู้ใช้สามารถลงทะเบียน dll ที่มีคลาสที่ใช้อินเตอร์เฟซ Esri มีหลายประเภท หมวดหมู่เหล่านี้ยังมีอาหารสุนัข - Esri ใช้พวกเขาไม่เพียง แต่จะค้นพบการปรับแต่งโดยบุคคลที่สาม แต่ยังรวมถึงการทำงานนอกกรอบ แม้ว่าจะมีการปรับแต่งในระดับที่ละเอียดมาก แต่ก็หมายความว่าเมล็ดละเอียดเหล่านี้ทั้งหมดจะต้องถูกค้นพบและโหลดในเวลาทำงาน ฉันไม่แน่ใจว่าค่าใช้จ่ายในการขนย้ายเป็นเท่าใดแต่ต้องมีความสำคัญ

ป้อนคำอธิบายรูปภาพที่นี่

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

เมื่อคุณสร้าง dll ใน Visual Studio มีสถานที่ที่คุณสามารถระบุที่อยู่พื้นฐานสำหรับ dll ที่จะโหลด เนื่องจากมีหลายขนาดกำลังโหลดโหลดรู้ก่อนเวลาสำหรับการปรับแต่ง ArcObjects จะยากมาก ถึงกระนั้นฉันสงสัยว่าไฟล์ config สามารถถูกสร้างขึ้นเพื่อบอกว่าควรโหลด dll ในหน่วยความจำหรือไม่ ถ้าเป็นเช่นนั้นเมื่อผู้ใช้มี arcmap ทำงานกับ dll โหลดว่าเขามักจะใช้เขาสามารถเรียกใช้รูทีนที่จะเขียนที่อยู่ฐาน dll ไปยังไฟล์ config ด้วยวิธีนี้เมื่อ arcmap เริ่มต้นก็สามารถหลีกเลี่ยงการเปลี่ยนตำแหน่งโดยการโหลดลงในที่อยู่เหล่านั้น ถ้าอย่างนั้นอีกครั้งด้วย64 บิตนี้จะไม่สำคัญ

เมื่อ 10.0 Esri แนะนำ Add-in หมวดหมู่ของ Add-in นั้นเล็กกว่ามากและการค้นหาไม่ขึ้นอยู่กับการลงทะเบียน windows แต่จะเป็นการเพิ่ม DLLs ไว้ในโฟลเดอร์ที่รู้จัก ฉันไม่แน่ใจว่าสิ่งนี้เปรียบเทียบประสิทธิภาพที่ชาญฉลาดกับที่กำลังค้นพบผ่านรีจิสทรีหน้าต่าง ฉันคิดว่าเป้าหมายหลักคืออนุญาตให้ผู้ติดตั้งไม่ใช่ผู้ดูแลระบบ

ฉันสมมติว่าคำถามนี้อ้างถึงผลิตภัณฑ์เดสก์ท็อป ผลิตภัณฑ์ ArcGIS Runtimeใหม่มีน้ำหนักเบากว่ามาก ฉันได้ยินมาว่ามันอธิบายแทน MapObjects มันจะน่าสนใจเพื่อดูว่ามันวิวัฒนาการ ถ้า Esri แนะนำความสามารถในการขยายสำหรับ WPF Runtime ฉันหวังว่าพวกเขาจะไม่ใช้กลไกเดียวกันสำหรับการค้นพบที่ Visual Studio ใช้เมื่อมันเติมรายการของแอสเซมบลี ครั้งแรกที่คลิก "เพิ่มการอ้างอิง ... " ทำให้ช้าลงอย่างเจ็บปวด


3
ฉันได้รับการบอกเล่าจากตัวแทนฝ่ายขายของ Esri เมื่อไม่กี่ปีที่ผ่านมาว่า Esri มีห้องสมุด COM ที่ใหญ่ที่สุดในโลกซึ่งใหญ่กว่าทุกสิ่งแม้แต่ Microsoft ได้สร้างขึ้น ฉันได้สันนิษฐานตั้งแต่นั้นส่วนหนึ่งของความเกียจคร้านของ Arcgis Desktop นั้นกำลังโหลดไลบรารีทั้งหมดในครั้งเดียวแทนที่จะหยิบบิตและชิ้นส่วนที่ต้องการตามต้องการ
matt wilkie

@mattwilkie เวลาเริ่มต้นสำหรับ ArcMap นั้นช้ากว่ามาก ที่จะปรับปรุงมันพวกเขาแนะนำให้รู้จักเพียงในเวลาส่วนขยาย ฉันไม่แน่ใจ แต่ฉันคิดว่ามีวิธีการคล้ายกันกับวัตถุ gx ที่โหลดเมื่อคุณเปิดกล่องโต้ตอบเพิ่มข้อมูลในครั้งแรก
Kirk Kuykendall

อืมม เวลาเริ่มต้นไม่เร็วสำหรับฉัน (อนุญาตให้ฉันออกจากหน่วยความจำไม่ใช่ข้อมูลดังนั้นจึงอาจเป็นเพียงการรับรู้) 17 วินาทีจากการคลิกปุ่ม Arcmap 10 ในทาสก์บาร์จนกว่ามันจะพร้อมที่จะทำบางสิ่ง (ด้วยการปิดตัวช่วยสร้าง "โหลดแผนที่ล่าสุด") ช่วงที่สองประมาณ 12 วินาที นี่คือหลังจากเปลี่ยน C: ฮาร์ดดิสก์ด้วย SSD Quantum ใช้เวลา 4s ในการวิ่งครั้งแรกและวินาทีถัดไป
matt wilkie

@mattwilkie Yeah ในขณะเดียวกันพวกเขาได้เพิ่มแถบเครื่องมือใหม่ ฯลฯ ดังนั้นการเพิ่มประสิทธิภาพใด ๆ จากการทันเวลาอาจไม่ได้ชดเชยความล่าช้าอย่างสมบูรณ์ซึ่งเป็นผลมาจากคุณสมบัติของซอฟต์แวร์ใหม่ นอกจากนี้ยังมีปัจจัยอื่น ๆ ที่ควรพิจารณา: เข้าถึงเซิร์ฟเวอร์สิทธิ์การใช้งานหรือไม่ แรมเท่าไหร่ จะเร็วกว่านี้ถ้าคุณลบ / เปลี่ยนชื่อ normal.mxt ของคุณ? (ทดสอบครั้งที่สองหลังจากลบตั้งแต่เริ่มต้นครั้งแรกจะต้องใช้เวลาในการสร้างขึ้นมาใหม่) คุณติดตั้งการปรับแต่งแล้วหรือยัง
Kirk Kuykendall

1
โบสถ์: คำตอบที่ดี @mattwilkie: มันเป็นเรื่องจริง Ms Office มีวัตถุ COM ประมาณ 400 (+?) ณ จุดหนึ่ง ฉันคิดว่าตอนนี้ GeoDatabase ด้วยตัวเองมีจำนวนมาก ความจริงก็คือดีขึ้นหรือแย่ลง ESRI ก็บ้าไปนิดหน่อย ฉันคิดว่าในเวลานั้นมันเป็นการตัดสินใจที่ปลอดภัย
Ragi Yaser Burhum

8

ยกโทษให้ฉันสำหรับการคืนค่าเธรดอีกครั้ง แต่ฉันสามารถให้ตัวอย่างที่เฉพาะเจาะจงว่าประสบการณ์ของผู้ใช้แตกต่างกันอย่างไรสำหรับ ArcMap และ QGIS

วันนี้ฉันต้องสร้างกริดพอยต์ด้วยระยะห่าง 250 เมตรทั่วประเทศเล็ก ๆ ตัดกริดพอยท์ไปที่รูปหลายเหลี่ยมเส้นขอบของประเทศและเชื่อมโยงค่าของแรสเตอร์หลาย ๆ

ใน ArcMap นี่ใช้เวลาประมาณ 10 นาทีจากการดาวน์โหลดข้อมูลไปยังชุดข้อมูลที่เสร็จสิ้นแล้ว ใน QGIS (Wroclaw) โปรแกรมขัดข้องสองครั้งเพียงแค่ตัดกริดกับรูปหลายเหลี่ยมจากนั้นก็วิ่งหนึ่งชั่วโมงก่อนที่จะเสร็จสิ้นในความพยายามครั้งที่สาม นี่คือกล่องที่มี 4 คอร์คู่และ RAM 6Gb

ฉันรัก QGIS และฉันต้องการใช้ ArcMap แต่ฉันพบกรณีการใช้งานทั่วไปจำนวนมากที่ QGIS ไม่ตรงกับความต้องการของฉัน

ตอนนี้ถ้าใครมีคำแนะนำในการปรับแต่งประสิทธิภาพใด ๆ ที่สามารถแก้ไขช่องว่างของการทำงานนี้ได้

คริส


ตกลง แต่สำหรับสิ่งที่คุ้มค่าฉันมักจะแห่กันไปที่ QGIS ก่อนและถ้ามันไม่ทำงานที่นั่นเพื่อกลับไปยัง ArcGIS
GeoH2O

1
ฟังดูเหมือนเป็นข้อบกพร่องสำหรับฉัน การขัดข้องไม่ใช่การวัดประสิทธิภาพที่ไม่ดี แต่เป็นอาการของสิ่งผิดปกติ รายงานไปยังคน QGIS
Nicklas Avén

คุณสร้างพื้นที่จุดใหญ่ขนาดไหน เพิ่งดำเนินการประเภทเดียวกันกับคะแนน 57k ใน QGIS (1.9) โดยไม่มีปัญหา
Simbamangu

@Simbamangu นี่เป็นกล่องที่มีขอบเขตล้อมรอบฮอนดูรัส - ประมาณครึ่งล้านคะแนน ที่ Nicklas_Aven: จุดที่ถ่ายไว้; ถ้าฉันมีเวลาที่จะทำซ้ำอย่างน่าเชื่อถือฉันจะส่ง
iamchriskelley

6

ฉันไม่คิดว่า Arc เขียนใน. NET Arcobjects เขียนด้วยภาษา C ++ อาร์คอาจช้าลงเนื่องจากการใช้ GUI ขั้นสูงมากมายเครื่องมือช่วยเหลือส่วนเสริม ฯลฯ QGIS เป็นซอฟต์แวร์ที่ยอดเยี่ยม แต่ไม่มีคุณสมบัติที่มีประโยชน์บางอย่างที่อาจเป็นผลดีสำหรับผู้เริ่มต้น นอกจากนี้ฉันไม่คิดว่าเครื่องมือ lavel พื้นฐานใน ESRI (Arcobjects) นั้นช้า มันมักจะเกิดขึ้นกับทักษะของผู้ใช้ถ้าผู้ใช้รู้วิธีใช้ Arc มันจะไม่ช้าเลย ต้องบอกว่าฉันควรพูดถึงว่าเครื่องมือทุกคนควรได้รับการพิจารณาในแต่ละกรณีเกี่ยวกับประสิทธิภาพการทำงานของมัน อีกอย่างคืออาร์คเป็นคนแรกในวงการ GIS ครั้งแรก (ค่อนข้าง QGIS) มักจะมีข้อบกพร่องและรุ่นต่อไปจะดีขึ้นเล็กน้อยในกรณีนี้ได้เร็วขึ้น แต่ทั้งหมดนี้เป็นเพียงความเห็นส่วนตัวของฉัน


2
Sidenote: ฉันสงสัยว่าอย่างน้อยส่วนหนึ่งของแกน ArcGIS 'ยังคงเขียนใน Fortran (ซึ่งมีข่าวลือว่าจะเร็วถ้าไม่เร็วกว่า C สำหรับงานตัวเลขบางอย่าง): ถ้าคุณใช้แอปพลิเคชั่นคอนโซล NET. ที่ทำให้การใช้งาน ArcObjects และคุณกดCtrl+Cในขณะที่ ArcObjects ดำเนินการบางอย่างคุณจะได้รับข้อความจากไลบรารีรันไทม์ของ Fortran
stakx

5
ArcObjects ยังใช้COMซึ่งเป็นหนึ่งในเฟรมเวิร์กการทำงานร่วมกันในช่วงแรกและมีภาระการทำงานของตัวเองโดยเฉพาะอย่างยิ่งเมื่อทำการจัดการระหว่างรหัส (เช่น. NET) และ unmanaged (C ++)
blah238

4
@stakx มีค่าใช้จ่ายในรหัส Fortran นั้นอย่างน้อยทางด้านแรสเตอร์ (Spatial Analyst) ฉันได้พัฒนาโปรแกรมเสริมของ Fortran เป็น SA และพบว่าพวกเขาทำงานได้เร็วขึ้นอย่างน้อยห้าเท่า ในช่วงหลายปีที่ผ่านมาเลเยอร์ของการห่อหุ้มบน wrappers บน wrappers ที่สร้างขึ้นเพื่อรวมรหัสต้นฉบับ (vintage 70's และ 80's) ได้สร้างภาระที่เพิ่มขึ้นเกี่ยวกับประสิทธิภาพของ Arc *
whuber

6

สิ่งนี้เกี่ยวข้องกับประสิทธิภาพของ ArcGIS: ArcMap, ArcCatalog ช้ามากที่จะเปิดแล็ปท็อปเครื่องใหม่ที่มีทรัพยากรเหลือเฟือ? ซึ่งอาจเป็นส่วนหนึ่งสำหรับปัญหาด้านประสิทธิภาพ หัวข้อนั้นแสดงให้เห็นว่าการกำหนดค่าฮาร์ดแวร์เครือข่ายและการอนุญาตให้ใช้สิทธิมีผลอย่างมากต่อประสิทธิภาพของ ArcGIS อาจเป็นไปได้ว่าความแตกต่างของความเร็วที่รายงานบางอย่างอาจเป็นเพราะปัจจัยดังกล่าวมากกว่าความแตกต่างโดยธรรมชาติในความสามารถ

(โพสต์เป็นลิงก์คำตอบเนื่องจากความคิดเห็นมักจะหายไป)


1
การตอบกลับและความคิดเห็นมีจุดประสงค์ต่างกันที่นี่แดน คุณพูดถูกความคิดเห็นมีสถานะเป็นอันดับสอง เหตุผลหนึ่งคือการเน้นคำตอบที่เป็นประโยชน์อย่างแท้จริง สิ่งใดก็ตามที่ไม่ใช่คำตอบควรเป็นความพยายามในการสร้างคำถามที่ตอบได้หรือเพื่อปรับปรุงคำถามหรือคำตอบ: นั่นเป็นความคิดเห็นแม้ว่ามันจะยอดเยี่ยมจริงๆ
whuber

เห็นด้วยว่ารุ่นในแล็บของเราทำงานได้ดีกว่ารุ่นทดลองที่ฉันใช้บนพีซีของฉัน ...
GeoH2O

2

ฉันทำงานกับข้อมูลระดับองค์กร (เช่นข้อมูลจุดสนใจสำหรับตุรกีทั้งหมด) และบางครั้งเพื่อตรวจสอบชุดข้อมูลฉันจำเป็นต้องแสดงผลนั้น

หากคุณต้องการปรับปรุงประสิทธิภาพของคุณด้วย ArcGIS มีบางสิ่งที่ฉันสามารถให้คำแนะนำได้

ใช้ข้อมูลที่คาดการณ์เสมอ ใช้ฐานข้อมูลภูมิศาสตร์หรือ ArcSDE กับ postgresql ทำงานได้สมบูรณ์แบบสำหรับฉัน

การใช้ไฟล์ฐานข้อมูลและถ้าเป็นไปได้ arcsde จะเพิ่มความเร็วของการดำเนินงานของคุณ ประสบการณ์ส่วนตัวของฉันกับ QGIS และ ArcMap นั้นเป็นสิ่งที่ตรงกันข้าม ใช้เวลาเกือบ 3 นาทีในการแสดงผล 3 ล้านคะแนนบนแผนที่ ในอีกทางหนึ่ง ArcMap แสดงผลพวกเขาภายในไม่กี่วินาที

แค่ความเห็นของฉัน


ทำไมถึงมีคะแนนถึง 3 ล้านคะแนน? หากคุณหมายถึงว่าเลเยอร์มี 3 ล้านคะแนนและบางส่วนอยู่ในมุมมองของคุณนั่นก็คือ QGIS ที่รวดเร็วเช่นกัน แต่คุณจะต้องมีดัชนีเชิงพื้นที่ แต่ฉันยอมรับว่า QGIS นั้นค่อนข้างยากที่จะหยุดเมื่อคุณทำผิดพลาดในการพยายามทำให้รูปทรงเรขาคณิตจำนวนมากเกินไป แม้เมื่อฆ่าการเรนเดอร์ด้วย esc บางครั้ง geoemtries ที่แสดงแล้วก็ค้างอยู่ที่นั่น
Nicklas Avén
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.