Conteúdo

Calcular milisegundos do tempo de execução

Certa vez eu precisei calcular a diferença que o programa leva do trecho A ao trecho B, porém este era executado tão rapidamente que o resultado final era impreciso, então o cálculo foi necessário em milissegundos.
REPORT ZSAPeiros.

DATA: lv_char     TYPE i,
      lv_char2    TYPE i,
      lv_retorno  TYPE i.

*--------------------------------------------------

* Horário de início em milisegundos
GET RUN TIME FIELD lv_char.

WAIT UP TO 2 SECONDS.

* Horário de fim em milisegundos
GET RUN TIME FIELD lv_char2.

WRITE: / 'INI',lv_char.

WRITE: / 'FIM',lv_char2.

lv_retorno =  ( lv_char2 - lv_char ).

WRITE: / 'TOT',lv_retorno.

* Transforma em segundos
lv_retorno =  lv_retorno * ( 10 ** -6 ).

WRITE: / 'SEG',lv_retorno.

*--------------------------------------------------
WRITE: / sy-uline.
*--------------------------------------------------

* Horário de início em milisegundos
GET RUN TIME FIELD lv_char.

WAIT UP TO 3 SECONDS.

* Horário de fim em milisegundos
GET RUN TIME FIELD lv_char2.

WRITE: / 'INI',lv_char.

WRITE: / 'FIM',lv_char2.

lv_retorno =  ( lv_char2 - lv_char ).

WRITE: / 'TOT',lv_retorno.

* Transforma em segundos
lv_retorno =  lv_retorno * ( 10 ** -6 ).

WRITE: / 'SEG',lv_retorno.