| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: journals beschleunigen (1532 mal gelesen)
|
uwe.a Ehrenmitglied maschbau-ing.
Beiträge: 1939 Registriert: 20.12.2000 Windows7/64Pro Vmware7.1 UG11-Nx9
|
erstellt am: 12. Mrz. 2010 19:32 <-- editieren / zitieren --> Unities abgeben:
ich habe jetzt so einige journals unter NX6 im betrieb. Funktioniert sehr gut nur die Abarbeitung ist ein wenig "lahm". Das warum und wieso ist mir egal. Was kann man aber machen um mehr Geschwindigkeit bei der Ausführung zu bekommen? Tips + Tricks ------------------ mfg uwe.a Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jan Boettcher Mitglied
Beiträge: 183 Registriert: 22.06.2005
|
erstellt am: 15. Mrz. 2010 10:24 <-- editieren / zitieren --> Unities abgeben: Nur für uwe.a
Hallo Uwe, Wenn das wie und warum Dir nicht egal wäre, hättest Du vielleicht selbst Ideen zu Performancesteigerung. Was ist denn 'lahm'? a) Der Start bis zum Beginn der Aktion -> Da die .net Journale jedesmal beim Start neu kompiliert werden, vergeht hier ein bischen Zeit. Hier hilft dann nur vorweg kompilieren (Lizenz erforderlich). b) Das Programm selbst läuft langsam -> Hier kann man nicht viel machen. U.U. könnte ein Aufräumen des Journals helfen. In aufgezeichneten Journalen steht Vieles drin, was für den eigentlichen Ablauf nicht notwendig ist -> ausmisten. Gruß Jan
------------------ Jan Böttcher www.ib-boettcher.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tömme Mitglied Teamcenter Administrator
Beiträge: 195 Registriert: 19.12.2007 TC 11.5.0 mit NX12
|
erstellt am: 17. Mrz. 2010 16:11 <-- editieren / zitieren --> Unities abgeben: Nur für uwe.a
Zitat: Original erstellt von Jan Boettcher: Hallo Uwe,Wenn das wie und warum Dir nicht egal wäre, hättest Du vielleicht selbst Ideen zu Performancesteigerung. Was ist denn 'lahm'? a) Der Start bis zum Beginn der Aktion -> Da die .net Journale jedesmal beim Start neu kompiliert werden, vergeht hier ein bischen Zeit. Hier hilft dann nur vorweg kompilieren (Lizenz erforderlich). b) Das Programm selbst läuft langsam -> Hier kann man nicht viel machen. U.U. könnte ein Aufräumen des Journals helfen. In aufgezeichneten Journalen steht Vieles drin, was für den eigentlichen Ablauf nicht notwendig ist -> ausmisten. Gruß Jan
richtig, daher sind journals von natur aus schon "lahm".
wichtig aber ist natürlich auch eine saubere und performance-optimierte programmierung ------------------ hab doch garnix gemacht .. außer den server neugestartet .. war das etwa falsch? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
uwe.a Ehrenmitglied maschbau-ing.
Beiträge: 1939 Registriert: 20.12.2000 Windows7/64Pro Vmware7.1 UG11-Nx9
|
erstellt am: 18. Mrz. 2010 19:45 <-- editieren / zitieren --> Unities abgeben:
|
Jan Boettcher Mitglied
Beiträge: 183 Registriert: 22.06.2005
|
erstellt am: 19. Mrz. 2010 08:45 <-- editieren / zitieren --> Unities abgeben: Nur für uwe.a
Hallo Uwe, Gib uns doch mal Hinweise, was für Journale Du hast. Was tun sie? Sind das einfach nur aufgezeichnete und maximal leicht modifizierte Journale oder hast Du richtig was programmiert? Im ersten Fall stehen in Deinem Journal viele Anweisungen drin, die für die eigentlich gewünschte Aktion gar nicht notwendig sind. Die musst Du finden und entfernen. Wenn Du nicht per Try-and-error vorgehen willst, musst Du natürlich dabei ein bisschen was davon verstehen, was im Journal steht. Gigantische Performancesteigerungen würde ich mir von dieser Aktion aber nicht versprechen. Wenn das ganze überwiegend selbst programmiert ist, dann muss man wie Tömme schon schrieb, den eigenen Quelltext mal kritisch unter die Lupe nehmen (unnötige/unnötig wiederholte Aufrufe der API, unnötige Schleifendurchläufe .....). Ich mag aber auch hier nicht groß rumraten. Viele Grüße Jan ------------------ Jan Böttcher www.ib-boettcher.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
little_ug Mitglied CAX/PDM Admin / PM
Beiträge: 389 Registriert: 20.03.2003 NX 7.5.4.4 mp1 Creo2 M020 TC UA 9.1.1.2
|
erstellt am: 19. Mrz. 2010 11:22 <-- editieren / zitieren --> Unities abgeben: Nur für uwe.a
|
uwe.a Ehrenmitglied maschbau-ing.
Beiträge: 1939 Registriert: 20.12.2000 Windows7/64Pro Vmware7.1 UG11-Nx9
|
erstellt am: 25. Mrz. 2010 16:13 <-- editieren / zitieren --> Unities abgeben:
what I found out sofar: ;-) compilierte journals laufen nicht schneller - es wird immer wieder das signing der .dll überprüft ;-( die Dinger brauch man nicht einmal neu unter 64bit kompilieren - die selbe dll läuft unter 32 wie unter 64 bit ------------------ mfg uwe.a Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jan Boettcher Mitglied
Beiträge: 183 Registriert: 22.06.2005
|
erstellt am: 26. Mrz. 2010 09:52 <-- editieren / zitieren --> Unities abgeben: Nur für uwe.a
Hallo Uwe, Dass sie schneller laufen, war ja auch nicht zu erwarten. Wenn sie denn laufen, sind sie ja compiliert. Das Starten von compilierten Journalen sollte etwas schneller gehen. Verstehe ich Dich recht, dass Du das probiert hast und der Zeitvorteil durch den Check auf Signierung zunichte gemacht wird? Selbstverständlich wird die Signierung jedes Mal durchlaufen. Dafür ist sie ja da. Was 32/64 Bit betrifft: .net ist schon ganz nett, wenn man sich nur in der Windowswelt bewegt. Aber was nervt denn nun? Der Start oder das Laufzeitverhalten? Gruß Jan
------------------ Jan Böttcher www.ib-boettcher.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
uwe.a Ehrenmitglied maschbau-ing.
Beiträge: 1939 Registriert: 20.12.2000 Windows7/64Pro Vmware7.1 UG11-Nx9
|
erstellt am: 26. Mrz. 2010 10:23 <-- editieren / zitieren --> Unities abgeben:
:was nervt: na ja ich wollte ursprünglich ja mehr Geschwindigkeit- vg. mit grip ist lahm nur grip asst nicht (mehr) immer. habe mir vom kompilieren mehr erwartet - und habe meine Erkenntnisse hier weiter gegeben... ------------------ mfg uwe.a Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
little_ug Mitglied CAX/PDM Admin / PM
Beiträge: 389 Registriert: 20.03.2003
|
erstellt am: 26. Mrz. 2010 10:54 <-- editieren / zitieren --> Unities abgeben: Nur für uwe.a
Habe hier auch schon probiert und probiert, schlussendlich hilft dann wirklich nur C oder C++... aber da gibts halt keine Journale sonder nur kompilierte Programme (und du brauchst die Lizenz...) Ich mache es so dass wirklich performante Programme in C geschrieben werden (sind nicht viele) der rest in .net.... ------------------ Gruß Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jan Boettcher Mitglied
Beiträge: 183 Registriert: 22.06.2005 NX 7.5 - NX 2007 SolidWorks 2006 - 2021 Win 10
|
erstellt am: 26. Mrz. 2010 11:56 <-- editieren / zitieren --> Unities abgeben: Nur für uwe.a
Hallo Michael, Zitat: Ich mache es so dass wirklich performante Programme in C geschrieben werden (sind nicht viele) der rest in .net....
Erzielst Du den Performancegewinn nur innerhalb Deines Programmablaufs oder auch bei den API-Aufrufen? Ich kann mir nicht vorstellen, dass die gleiche Folge von API-Aufrufe in C deutlich schneller durchläuft als in .net. Oder hast Du andere Erfahrungen? Der Schwund durch die Wrapper sollte doch vernachlässigbar sein. Ich mach' inzwischen eigentlich bei NX nichts mehr in C/C++ sondern nur noch c# oder Java weil es komfortabler und (idioten-)sicherer ist. Gruß Jan ------------------ Jan Böttcher www.ib-boettcher.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
little_ug Mitglied CAX/PDM Admin / PM
Beiträge: 389 Registriert: 20.03.2003
|
erstellt am: 30. Mrz. 2010 08:12 <-- editieren / zitieren --> Unities abgeben: Nur für uwe.a
Hallo Jan, es ist klar dass es beim Aufrufen des C Programmes fast keine Verzögerungen gibt. Bei den API aufrufen gibt es wirklich fast keinen unterschied... Wie sieht es hier bei Java aus? ------------------ Gruß Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jan Boettcher Mitglied
Beiträge: 183 Registriert: 22.06.2005 NX 7.5 - NX 2007 SolidWorks 2006 - 2021 Win 10
|
erstellt am: 30. Mrz. 2010 08:46 <-- editieren / zitieren --> Unities abgeben: Nur für uwe.a
|
uwe.a Ehrenmitglied maschbau-ing.
Beiträge: 1939 Registriert: 20.12.2000 Windows7/64Pro Vmware7.1 UG11-Nx9
|
erstellt am: 26. Apr. 2010 21:15 <-- editieren / zitieren --> Unities abgeben:
|
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 27. Apr. 2010 08:28 <-- editieren / zitieren --> Unities abgeben: Nur für uwe.a
Hallo Uwe, hier ein paar Anregungen, ob's tatsächlich was bringt, muß ein (oder wahrscheinlich mehrere) Versuche zeigen: Der auffälligste Aspekt: Du schiebst alle Objekte erst einzeln in ein Array, dann einzeln auf den Ziellayer. Das könnte schneller gehen, wenn erst alle Objekte ins Array, dann gemeinsam auf den Layer gesetzt werden. Bei den Datums hast Du zwei mal If ... End if. Versuch's mal mit If ... Elseif ... End if. Oder per Select Case. Features holst Du aus dem DisplayPart, den Rest aus dem WorkPart. Alles aus dem WP zu holen, könnte einen Unterschied machen. Bei den Features machst Du eine Stringverarbeitung, die möglicherweise bremst. Ob das im einzelnen was bringt, läßt sich über Ausgabe und Vergleich der benötigten Zeit ermitteln, z.B. Datetime.Now vor und nach einer Schleife ins Listingwindow schreiben. Daneben wird, wie oben schon mehrfach angesprochen, das Kompilieren auch ein Stück weit helfen. Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
uwe.a Ehrenmitglied maschbau-ing.
Beiträge: 1939 Registriert: 20.12.2000 Windows7/64Pro Vmware7.1 UG11-Nx9
|
erstellt am: 27. Apr. 2010 18:51 <-- editieren / zitieren --> Unities abgeben:
danke Michael, - habe deine Anregungen schon berücksichtigt. das mit den:... alle Objekte erst einzeln in ein Array, ... habe ich schon versucht ... bekomme ich nicht hin. Sheetbody und das datumcsys wollen nicht mit der Methode. ------------------ mfg uwe.a [Diese Nachricht wurde von uwe.a am 27. Apr. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Bauingenieure (m/w/d) | Die K. Schütte GmbH ist marktführender deutscher Lärmschutzsystemhersteller. Werden Sie Teil eines stark expandierenden Unternehmens und eines dynamischen Teams und gestalten Sie mit uns nachhaltig die Zukunft! Wir suchen: Bauingenieure (m/w/d) Ehrgeiz, Einsatzbereitschaft und Lust auf Verantwortung zeichnet Sie aus? Dann sind Sie bei uns genau richtig. Wir wollen unsere Marktposition zusammen mit Ihnen stärken und weiter ausbauen.... | Anzeige ansehen | Projektmanagement |
|
mseufert Moderator Freiberuflicher CAD/CAM Ingenieur
Beiträge: 2624 Registriert: 18.10.2005 HP Z420 WIN7 64 Win 10 UG NX6-1980 3D Printer Prusa MK2 S
|
erstellt am: 28. Apr. 2010 09:40 <-- editieren / zitieren --> Unities abgeben: Nur für uwe.a
Hallo Uwe, schreib' mal anstatt : Code: For Each obj As DisplayableObject In WP.points objArray(0) = obj WP.Layers.MoveDisplayableObjects(131, objArray) Next
folgendes: Code: dim pnt_arr() as point = wp.points.toarray dim obj_array(np -1) as displayableobjectFor i as integer = 0 to pnt_arr.length -1 obj_array(i) = ctype(pnt_arr(i), displayableobject) next wp.layers.MoveDisplayableObjects(131, objArray)
Bei Option Strict Off könnte es kurz und knapp auch so gehen, wenn's keinen Fehler mit der impliziten Typumwandlung gibt: Code: wp.layers.MoveDisplayableObjects(131, wp.points.toarray)
Gruß, Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |