Autor
|
Thema: Geschwindigkeit CATIA (1566 mal gelesen)
|
wulfgang Mitglied
Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 20. Mrz. 2010 17:28 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe mal eine allgemeinere Frage. Ich habe ein Makro, das sehr viele Punkte und Polygone erzeugt. Die Rechenzeit beträgt circa 15min. Halbiere ich nun die Anzahl der erzeugten Geometrieelemente dauert das ganze nur noch circa 1min. Welche Gründe gibt es für einen solch großen Zeitunterschied? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 20. Mrz. 2010 18:39 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
Hallo Wulfgang, ich würde sagen das es mit der Windows Architektur zusammenhängt. Innerhalb des Makro´s erzeugst du ja Objekte, die irgendwo im Arbeitsspeicher abgelegt werden. Diese können mit dem = Nothing Befehl zerstört werden. Das löschen des Objekts aus dem Arbeitsspeicher erfolgt aber nicht mit der Ausführung dieser Zeile. In der Zeile wird das Objekt nur markiert, so das es überhaupt aus dem dem Speicher gelöscht werden kann. Dafür ist der Garbage Collector zuständig. Ein Prozess der ständig durch den Arbeitsspeicher flitzt und alle markierte Objekte löscht. Je mehr Objekte du jetzt in deinen Speicher reinschreibst desto mehr haben auch Garbage Collector und andere Sub Routinen zu tun. Die Arbeit die somit verrichtet werden muss kann somit einfach multipliziert werden, da die Vorgänge aber direkt zusammenhängen steigt die Zeit exponentiell an ------------------ MFG Daniel Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wulfgang Mitglied
Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 20. Mrz. 2010 19:32 <-- editieren / zitieren --> Unities abgeben:
|
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 21. Mrz. 2010 12:06 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 21. Mrz. 2010 12:10 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
Servus Viellicht könnte man auch dein Programm etwas besser strukturieren, damit es schneller durchläuft. Was hast du vor? Wie gehst du vor? (Punkte und Linien erzeugen geht ja schon aus den anderen Themen hervor) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 21. Mrz. 2010 12:38 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
Hallo, ich gebe Bernd da auf jeden Fall recht. An der reinen Windowsarchitektur wirst du nichts machen können, d.h. du musst die Performance in deinem Programm erhöhen. Wenn du uns mal den Code posten könntest denn könnten wir dir auch bestimmt noch ein paar Tipps geben. Ich habe dazu auch noch ein Beispiel: Die Performance von Collections im Gegensatz zu einem Array ist bei bestimmten Operationen wesentlich besser. Wenn du bei einem Array ein "Redim Preserve" machst, wird eine komplette Kopie des Array in deinem Arbeitsspeicher erstellt. Bei jedem Redim Preserve kommt eine Kopie dazu. Eine Collection kann ohne diese Kopie einfach erweitert werden. D.h. der "Datenmüll" im Arbeitsspeicher ist wesentlich geringer beo Collections und das zieht eine Performance Steigerung mit sich. Genauso verhält es sich mit Select Case und If...then..else Anweisungen. Letztere sind bei vielen Entscheidungsvarianten (wenn du die Abfragen mit "and" und "or" und "ElseIf"... verschachtelst) wesentlich schlechter in der Performance als Die Select Case Anweisung. ------------------ MFG Daniel Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 22. Mrz. 2010 08:57 <-- editieren / zitieren --> Unities abgeben: Nur für wulfgang
Hallo, dem Beispiel kann ich nur zustimmen. Falls esjemand ausprobieren möchte, ein kleines Script im Anhang, es handelt sich um ein VB6 Modul (aus .txt mach .bas´und du hast das VB6.modul; wenn nicht eben nur den Text-File mit gleichem Inhalt, zu Öffnen mit irgendeinem Editor). Das Script läuft rekursiv durch eine geladene Product-Struktur und erfasst zum Testen alle Dokumente in der Struktur genau 1 mal (sowie Pfad etc.). Erst mittels eines dyn. Arrays, dann mit Hilfe einer Collection. Eine Msgbox gibt jeweils die benötigte Zeit aus. Faktor 1/50 bei ca. 500 Modellen in der Struktur. Das hat mich wirklich überrascht. Ich bin mit nicht wirjklich Sicher, ob es was mit der Speicherauslastung zu tun hat, da da ganze innnerhalb eines Scriptes passiert, und eben erst mittels dyn. Array. Zudem wird bei dem Zuweisen eines Objektes fast gar kein Speicher "verbraucht"; das Problem ist lediglich die erfolgte Addresierung (Vorhaltung) von Speicherplatz. Die Dikussion hatten wir schon mal hier: http://ww3.cad.de/foren/ubb/Forum137/HTML/002119.shtml#000007 Gruß TomTom ------------------ tomtom1972 [Diese Nachricht wurde von tomtom1972 am 22. Mrz. 2010 editiert.] [Diese Nachricht wurde von tomtom1972 am 22. Mrz. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wulfgang Mitglied
Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 23. Mrz. 2010 22:13 <-- editieren / zitieren --> Unities abgeben:
|