[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Mar 2007
    Beiträge
    15

    Genaue Zeitmessung mit ILE COBOL

    Hallo zusammen,

    ich brauche für einen Test für bestimmte Funktionen eines Programms eine Möglichkeit, Zeitdifferenzen zwischen bestimmten Programmschritten zu ermitteln. Hierzu habe ich mich zuerst der Funktion

    FUNCTION CURRENT-DATE

    bedient, jedoch sehr schnell feststellen müssen, dass die Genauigkeit dieser Funktion zu Wünschen übrig lässt. 0,01 Sek. ist mit meine Zwecke eine viel zu geringe Auflösung die mein Ergebnis erheblich verfälscht.

    Gibt es eine andere Möglichkeit der genaueren Zeitmessung ? z.B. durch den Aufruf eines externen Systembefehls von Cobols aus ? Oder gibt es Möglicherweise eine Cobol-Funktion die ich noch nicht kenne ?

    Besten dank
    Tom

  2. #2
    Registriert seit
    Jul 2001
    Beiträge
    2.713
    Zitat Zitat von Tom74 Beitrag anzeigen
    0,01 Sek. ist mit meine Zwecke eine viel zu geringe Auflösung die mein Ergebnis erheblich verfälscht.
    Hallo Tom,
    ich würde die Idee wieder in die Schublade legen. Da OS/400 kein Echtzeit-Betriebssystem ist, ist eine so genaue Messung selten sinnvoll. Denn das OS kann ja aus einer Laune Deinen Job auslagern, und Dir mal eben 500ms klauen. Garantierte Reaktionszeiten im Millisekunden-Bereich kannst Du Dir auch nicht reservieren.

    -h

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    embedded SQL bietet mit current_timestamp 10**-6 an Genauigkeit, hat allerdings selber einiges an Overhead, das c-API gettimeofday liefert die gleiche Genauigkeit, mit etwas weniger Überkopf - ich bin aber kein Experte für die Verwendung von C-APIs in COBOL und ohne ILE geht da garnix.

    mfg

    Dieter Bender

    Zitat Zitat von Tom74 Beitrag anzeigen
    Hallo zusammen,

    ich brauche für einen Test für bestimmte Funktionen eines Programms eine Möglichkeit, Zeitdifferenzen zwischen bestimmten Programmschritten zu ermitteln. Hierzu habe ich mich zuerst der Funktion

    FUNCTION CURRENT-DATE

    bedient, jedoch sehr schnell feststellen müssen, dass die Genauigkeit dieser Funktion zu Wünschen übrig lässt. 0,01 Sek. ist mit meine Zwecke eine viel zu geringe Auflösung die mein Ergebnis erheblich verfälscht.

    Gibt es eine andere Möglichkeit der genaueren Zeitmessung ? z.B. durch den Aufruf eines externen Systembefehls von Cobols aus ? Oder gibt es Möglicherweise eine Cobol-Funktion die ich noch nicht kenne ?

    Besten dank
    Tom
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    Registriert seit
    Jul 2001
    Beiträge
    2.713
    Zitat Zitat von BenderD Beitrag anzeigen
    Hallo,

    embedded SQL bietet mit current_timestamp 10**-6 an Genauigkeit,
    Die Frage ist ja nicht, wie hoch die Genauigkeit einer Angabe ist, sondern auch, was sie mir wirklich nützt. Da kommt es darauf an, was Tom mit seinen Messungen erreichen will.
    Eventuell ist ja der Aufruf der API und die Speicherung der Messwerte nachher auch aufwändiger als die Messung der dazwischen enthaltenen Befehle

    -h

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    @Holger: ich fand das für manche Zwecke bisher recht brauchbar und traue jedem erst mal zu sowas fachgerecht einzusetzen - wer nicht will, der braucht halt nicht, was grundsätzlich für alle meine Tipps gilt.

    Zitat Zitat von holgerscherer Beitrag anzeigen
    Die Frage ist ja nicht, wie hoch die Genauigkeit einer Angabe ist, sondern auch, was sie mir wirklich nützt. Da kommt es darauf an, was Tom mit seinen Messungen erreichen will.
    Eventuell ist ja der Aufruf der API und die Speicherung der Messwerte nachher auch aufwändiger als die Messung der dazwischen enthaltenen Befehle

    -h
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Wenn ein Messintervall kürzer als 0,01 Sekunden ist, muss man einfach das Intervall verlängern.

    Ansonsten kann man sicherlich auc C-Funktionen in Cobol einbinden:

    call procedure "TIMEOFDAY" using ... returning ...

    Es gibt irgendeine Zeitfunktion, die eine Struktur mit 2 Werten liefert:
    Zeit in Sekunden set 1.1.1970 (Unix-Funktion) und Micro-Sekunden.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. ILE COBOL und SQLCLI ?
    By rebe in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 08-02-06, 15:50
  2. Problem mit XML PARSE in ILE COBOL
    By MikRom in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 15-08-05, 09:06
  3. eigene Prozeduren in ILE Cobol?
    By rebe in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 23-07-04, 08:41
  4. ILE Cobol: accept aTimestamp from timestamp?
    By rebe in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 26-09-01, 08:46
  5. Problem bei ILE COBOL mit sql connect to
    By rebe in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 07-09-01, 13:55

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •