| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
Autor
|
Thema: LISP: Hundertstel Sekunden messen (2265 mal gelesen)
|
holt Mitglied Systembetreuer CAD
Beiträge: 713 Registriert: 07.08.2003 Corei7 3770K, Win7-64, 16GB PNY Quadro 2000K CoCreate Modeling 18.10 CoCreate Drafting 18.10 CoCreate ModelManager 18.10
|
erstellt am: 18. Jan. 2012 13:45 <-- editieren / zitieren --> Unities abgeben:
Hallo, bisher habe ich die LISP-Funktion get-universal-time verwendet, um die Dauer von Vorgängen zu messen. Die Funktion gibt aber nur ganze Sekunden her. Gibt es eine Möglichkeit, Zeiten in Hundertstel Sekunden zu messen und den Rückgabewert dann weiterzuverarbeiten? ------------------ Gruß aus dem Salzkammergut Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
Beiträge: 657 Registriert: 20.11.2006 Win7 Pro SP1 64Bit HP Z230, Core i5, 8GB RAM, nv Quadro K600 Creo Elements/Direct 19.0 M010 ModelManager 19.0 M010 clisp,VB.net,VBA,AHK,php,javascript
|
erstellt am: 18. Jan. 2012 14:00 <-- editieren / zitieren --> Unities abgeben: Nur für holt
|
holt Mitglied Systembetreuer CAD
Beiträge: 713 Registriert: 07.08.2003 Corei7 3770K, Win7-64, 16GB PNY Quadro 2000K CoCreate Modeling 18.10 CoCreate Drafting 18.10 CoCreate ModelManager 18.10
|
erstellt am: 19. Jan. 2012 07:15 <-- editieren / zitieren --> Unities abgeben:
Hallo Patrick, internal-time bringt mich leider auch nicht weiter. Grund: Die Konstante internal-time-units-per-second hat zwar den Wert 1000, die Rückgabewerte von get-internal-real-time sind aber immer ganze 1000er, also wieder ganze Sekunden. get-internal-run-time ist für mich nicht brauchbar, da die CPU-Zeit nicht mit der verstrichenen Zeit übereinstimmt und gerade bei Ladevorgängen (diese möchte ich unter anderem messen) deutlich von der realen Zeit abweicht. ------------------ Gruß aus dem Salzkammergut Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
Beiträge: 657 Registriert: 20.11.2006 Win7 Pro SP1 64Bit HP Z230, Core i5, 8GB RAM, nv Quadro K600 Creo Elements/Direct 19.0 M010 ModelManager 19.0 M010 clisp,VB.net,VBA,AHK,php,javascript
|
erstellt am: 20. Jan. 2012 10:49 <-- editieren / zitieren --> Unities abgeben: Nur für holt
Du könntest über eine externe Anwendung den Timestamp in eine Datei schreiben und dann auswerten. Du hast dadurch zwar eine Zeitdifferenz von bis zu 100ms (verringert sich bei Mehrfachausführung auf ca. 5ms), aber immer noch besser als 1s. Die Zeitdifferenz resultiert aus der Trägheit der gesamten Umgebung. Etwas fertig im Modeling integriert wäre natürlich schöner. EDIT:
Code: (in-package :custom) (use-package :OLI) (defun gettime() (let (l (s (open "| c:\\docs\\time-ms.exe" :direction :input))) (setf l (read-line s nil)) (close s) (if l (read-from-string l) nil ) ) )
Damit kannst du gleich auf den Rückgabewert zugreifen, ohne in eine Datei schreiben zu müssen (Danke an clausb!). Einfach im Code den Pfad zu time-ms anpassen und mit (gettime) den Zeitwert abholen. (20-30ms Zeitverzögerung) ------------------ Grüße aus Sachsen pw
Karl Marx ist tot, Einstein ist tot, und mir ist auch schon ganz schlecht! [Diese Nachricht wurde von Patrick Weber am 20. Jan. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holt Mitglied Systembetreuer CAD
Beiträge: 713 Registriert: 07.08.2003 Corei7 3770K, Win7-64, 16GB PNY Quadro 2000K CoCreate Modeling 18.10 CoCreate Drafting 18.10 CoCreate ModelManager 18.10
|
erstellt am: 23. Jan. 2012 09:57 <-- editieren / zitieren --> Unities abgeben:
Mit dem Aufruf einer externen Funktion habe ich auch schon spekuliert, dank deiner Hilfe brauch ich mir jetzt auch über die Realisierung nicht mehr den Kopf zerbrechen. Danke! Eines irritiert mich aber nach den ersten Versuchen: Beginn Zeitmessung: Aufruf in Eingabeaufforderung: 1327298639.312 Aufruf in Lisp: 1.327298639312E9 Ende Zeitmessung: Aufruf in Eingabeaufforderung: 1327298641.718 Aufruf in Lisp: 1.3272986417179999E9 --> Das ist ja noch klar. Wenn ich die Werte aber subtrahiere, kommt in Lisp 2.4059998989105225 heraus. Warum kommt, wenn ich bei Minuend und Subtrahend 3 Nachkommastellen habe, eine Differenz mit 16 Nachkommastellen heraus?
------------------ Gruß aus dem Salzkammergut Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
Beiträge: 657 Registriert: 20.11.2006 Win7 Pro SP1 64Bit HP Z230, Core i5, 8GB RAM, nv Quadro K600 Creo Elements/Direct 19.0 M010 ModelManager 19.0 M010 clisp,VB.net,VBA,AHK,php,javascript
|
erstellt am: 23. Jan. 2012 10:09 <-- editieren / zitieren --> Unities abgeben: Nur für holt
|
Michael Kahle Mitglied Programmierer
Beiträge: 75 Registriert: 10.05.2002
|
erstellt am: 01. Feb. 2012 13:50 <-- editieren / zitieren --> Unities abgeben: Nur für holt
|
holt Mitglied Systembetreuer CAD
Beiträge: 713 Registriert: 07.08.2003 Corei7 3770K, Win7-64, 16GB PNY Quadro 2000K CoCreate Modeling 18.10 CoCreate Drafting 18.10 CoCreate ModelManager 18.10
|
erstellt am: 01. Feb. 2012 14:09 <-- editieren / zitieren --> Unities abgeben:
|
holt Mitglied Systembetreuer CAD
Beiträge: 713 Registriert: 07.08.2003 Corei7 3770K, Win7-64, 16GB PNY Quadro 2000K CoCreate Modeling 18.10 CoCreate Drafting 18.10 CoCreate ModelManager 18.10
|
erstellt am: 06. Feb. 2012 11:26 <-- editieren / zitieren --> Unities abgeben:
Jetzt kenn ich mich nicht mehr aus: Wenn ich die Funktion (seconds-since-1970) direkt in die Eingabezeile eingebe oder in einem LISP-File aufrufe, in dem kein in-package angegeben ist oder in einem Recorder-File, funktioniert der Aufruf tadellos. Wenn die Funktion aber in einem LISP-File mit in-package Angabe aufgerufen wird bekomme ich einen Fehler: "LISP-Fehler: The function package-name::SECONDS-SINCE-1970 is undefined." Die Funktion (apropos 'seconds-since-1970) gibt leider keine Aufschluss über das zugehörige Package: SECONDS-SINCE-1970 Function Weiß jemand, wie man das Problem beheben kann? ------------------ Gruß aus dem Salzkammergut Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Patrick Weber Mitglied Konstruktionstechniker, Admin
Beiträge: 657 Registriert: 20.11.2006 Win7 Pro SP1 64Bit HP Z230, Core i5, 8GB RAM, nv Quadro K600 Creo Elements/Direct 19.0 M010 ModelManager 19.0 M010 clisp,VB.net,VBA,AHK,php,javascript
|
erstellt am: 06. Feb. 2012 13:20 <-- editieren / zitieren --> Unities abgeben: Nur für holt
|
holt Mitglied Systembetreuer CAD
Beiträge: 713 Registriert: 07.08.2003 Corei7 3770K, Win7-64, 16GB PNY Quadro 2000K CoCreate Modeling 18.10 CoCreate Drafting 18.10 CoCreate ModelManager 18.10
|
erstellt am: 07. Feb. 2012 09:46 <-- editieren / zitieren --> Unities abgeben:
|
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 08. Feb. 2012 14:49 <-- editieren / zitieren --> Unities abgeben: Nur für holt
Zitat: Original erstellt von holt: common-lisp-user::seconds-since-1970 geht auchWas ist beser oder "richtiger"?
Die Funktion ist meines Wissens undokumentiert. Es gibt also keine "richtige" Variante ;-) Ich würde f2 als Packagenamen verwenden, um klar zu markieren, dass es sich hier um keine Funktionalität in Common Lisp handelt. ------------------ CoCreate Modeling FAQ: http://www.clausbrod.de/CoCreateModeling/ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Moderator Frank und Frei
Beiträge: 2143 Registriert: 12.12.2000 Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.4, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf HP ZBook 17 G4, Windows 10 Pro 64
|
erstellt am: 08. Feb. 2012 15:58 <-- editieren / zitieren --> Unities abgeben: Nur für holt
|
holt Mitglied Systembetreuer CAD
Beiträge: 713 Registriert: 07.08.2003 Corei7 3770K, Win7-64, 16GB PNY Quadro 2000K CoCreate Modeling 18.10 CoCreate Drafting 18.10 CoCreate ModelManager 18.10
|
erstellt am: 09. Feb. 2012 10:06 <-- editieren / zitieren --> Unities abgeben:
|
Walter Geppert Moderator Frank und Frei
Beiträge: 2143 Registriert: 12.12.2000 Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.4, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf HP ZBook 17 G4, Windows 10 Pro 64
|
erstellt am: 09. Feb. 2012 10:39 <-- editieren / zitieren --> Unities abgeben: Nur für holt
|
der_Wolfgang Ehrenmitglied V.I.P. h.c. Tastenhauer
Beiträge: 2017 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build19044.2364 ● Drafting V17~V20.5.1 ● Modeling V17~V20.5.1
|
erstellt am: 11. Feb. 2012 17:15 <-- editieren / zitieren --> Unities abgeben: Nur für holt
|
clausb Ehrenmitglied V.I.P. h.c.
Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 13. Feb. 2012 23:24 <-- editieren / zitieren --> Unities abgeben: Nur für holt
|