| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
| |
 | Effektives Anforderungsmanagement und agile Entwicklung, eine Pressemitteilung
|
Autor
|
Thema: LISP: Hundertstel Sekunden messen (2483 mal gelesen)
|
holt Mitglied Systembetreuer CAD
  
 Beiträge: 720 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.5 Creo Elements/Direct Drafting 20.5 Creo Elements/Direct ModelManager 20.5
|
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: 659 Registriert: 20.11.2006
|
erstellt am: 18. Jan. 2012 14:00 <-- editieren / zitieren --> Unities abgeben:          Nur für holt
|
holt Mitglied Systembetreuer CAD
  
 Beiträge: 720 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.5 Creo Elements/Direct Drafting 20.5 Creo Elements/Direct ModelManager 20.5
|
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: 659 Registriert: 20.11.2006
|
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: 720 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.5 Creo Elements/Direct Drafting 20.5 Creo Elements/Direct ModelManager 20.5
|
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: 659 Registriert: 20.11.2006
|
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: 720 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.5 Creo Elements/Direct Drafting 20.5 Creo Elements/Direct ModelManager 20.5
|
erstellt am: 01. Feb. 2012 14:09 <-- editieren / zitieren --> Unities abgeben:         
|
holt Mitglied Systembetreuer CAD
  
 Beiträge: 720 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.5 Creo Elements/Direct Drafting 20.5 Creo Elements/Direct ModelManager 20.5
|
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: 659 Registriert: 20.11.2006
|
erstellt am: 06. Feb. 2012 13:20 <-- editieren / zitieren --> Unities abgeben:          Nur für holt
|
holt Mitglied Systembetreuer CAD
  
 Beiträge: 720 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.5 Creo Elements/Direct Drafting 20.5 Creo Elements/Direct ModelManager 20.5
|
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: 2166 Registriert: 12.12.2000
|
erstellt am: 08. Feb. 2012 15:58 <-- editieren / zitieren --> Unities abgeben:          Nur für holt
|
holt Mitglied Systembetreuer CAD
  
 Beiträge: 720 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.5 Creo Elements/Direct Drafting 20.5 Creo Elements/Direct ModelManager 20.5
|
erstellt am: 09. Feb. 2012 10:06 <-- editieren / zitieren --> Unities abgeben:         
|
Walter Geppert Moderator Frank und Frei
     

 Beiträge: 2166 Registriert: 12.12.2000
|
erstellt am: 09. Feb. 2012 10:39 <-- editieren / zitieren --> Unities abgeben:          Nur für holt
|
der_Wolfgang Moderator Tastenhauer
     
 Beiträge: 2296 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.5737 ● Drafting V17~V20.7@job ● Modeling V17~V20.7@job ● Windchill 12.1.2.6@job ● UWGM Client 13.0.0.1@job ● Taschenrechner ● Stift+Zettel V8.42
|
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
|