Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Geschwindigkeit VBA vs .NET

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Geschwindigkeit VBA vs .NET (947 mal gelesen)
krisztian.furedi
Mitglied
Konstrukteur / Maschinenbau


Sehen Sie sich das Profil von krisztian.furedi an!   Senden Sie eine Private Message an krisztian.furedi  Schreiben Sie einen Gästebucheintrag für krisztian.furedi

Beiträge: 73
Registriert: 21.10.2006

Catia V5R16 SP5 Hotfix 24

erstellt am: 24. Mai. 2008 10:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Zusammen,

hat jemand schon die Erfahrung um wieviel langsamer .NET als VBA sein soll? Ich habe ein VBA Projekt in .NET kompiliert und die Laufzeit war in VBA 1min. und in .NET ca. 4min. Ist es normal oder ist es von verwendeten Befehle abhängig?

Gruss, K.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mirko78
Mitglied
Maschinenbau-Techniker

Sehen Sie sich das Profil von mirko78 an!   Senden Sie eine Private Message an mirko78  Schreiben Sie einen Gästebucheintrag für mirko78

Beiträge: 9
Registriert: 12.05.2008

erstellt am: 25. Mai. 2008 19:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für krisztian.furedi 10 Unities + Antwort hilfreich

Hallo Krisztian. Ich kenne mich zwar nicht mit .NET aus, aber dafür habe ich schon andere Sprachen kennengelernt. Grundsätzlich kann man aber sagen, daß einige Sprachen wesentlich langsamer sind als andere. Umso näher eine Programmiersprache der Maschinensprache ist, umso schneller arbeitet sie auch. Ein Assembler-Programm ist zwar sehr kryptisch, der Programmierer jedoch braucht nur die absolut nötigsten Maschinenbefehle benutzen, was das Programm unschlagbar schnell werden lässt. Hochsprachen wie VBA oder .NET greifen ebenfalls auf diese Maschinenbefehle zu, jedoch hat man als Programmierer keine Kontrolle darüber. Dafür sind sie aber bequemer. Das sieht man auch daran, wenn man zwei identische Programme in zwei unterschiedlichen Sprachen implementiert hat. Das eine hat vielleicht nur 100Kb und das andere in Hochsprache geschriebene 1Mb. Ich kann zwar nicht sagen um wieviel langsamer .NET ist aber vielleicht hilft die diese Info ein bischen weiter.
Was bedeutet eigentlich "furedi"? Hat nichts mit Balaton zu tun, oder?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CAMiCADse
Mitglied



Sehen Sie sich das Profil von CAMiCADse an!   Senden Sie eine Private Message an CAMiCADse  Schreiben Sie einen Gästebucheintrag für CAMiCADse

Beiträge: 177
Registriert: 17.02.2006

V5,R19,SP9

erstellt am: 26. Mai. 2008 10:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für krisztian.furedi 10 Unities + Antwort hilfreich

Hallo Krisztian,

Da VBA "inprocess" läuft, hast du in gewissen Bereichen einen eindeutigen Geschwindigkeitsvorteil gegenüber allen anderen Sprachen, da diese "out of process" ablaufen.

Mach mal eine Schleife und erzeuge 1000 Punkte, oder lies alle Parameter einer größeren Baugruppe ein. Das ist nicht nur Faktor 4...

Ich erklär dass immer so:
Denk dir, CATIA ist ein Schuhkarton.
Bei VBA sitzt du schon in der Kiste drin und werkelst einfach drauf los, bei allen anderen Sprachen musst du jedesmal die Kiste öffnen, Befehl ausführen, Kiste schließen, öffnen, ausführen, schließen,...
Das kostet eben Zeit!

Ich hab die Erfahrung gemacht, dass eine 1zu1 Portierung in der Performance immer schlechter abschneidet. VBA ist hier einfach weniger empfindlich und lässt auch "ineffizienten" Code noch gut aussehen.
Es lässt sich bestimmt nicht alles optimieren, aber wenn du darauf achtest, die Kiste möglichst wenig auf und zu zu machen, dann geht da meist schon noch was. Also Zugriffe auf CATIA minimieren und mit internen Variablen arbeiten.

Extrem-Bsp:
VBA            : 20 sek
.NET (1zu1)    : >1 Min
.NET optimiert :  5 sek

Um die Laufzeit zu optimieren, habe ich auch schon mal "zugriffsintensive" Teile als VBA-Projekt ausgelagert und von .NET aus aufgerufen.

Gruß
CAMiCADse

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz