×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




One way to get time with milliseconds is the CEELOCT API (See the iSeries 
Information Center for details).
It return 3 values.  The 3rd one is a string as YYYYMMDDHHMMSSmmm, mmm is 
miliseconds.

Kent


-----Original Message-----
From: Jevgeni Astanovski [mailto:Jevgeni.Astanovski@xxxxxxxx]
Sent: Monday, April 18, 2005 8:39 AM
To: c400-l@xxxxxxxxxxxx
Subject: [C400-L] How to calculate process duration?


My problem is how to get duration of a certain part of the program.
It is my program and I'll put timestamping into it myself.

So idea is:

.....
time(&Time1) ;
processing...
processing...
processing...
time(&Time2) ;
Duration = GetTimeDifference(Time1, Time2) ;

But I know, that the processing takes surely less than a second, so time() 
function, returning seconds is not OK.

Looked at mattod(). It is said, that it's tick is 1/1000 sec. Fine. But isn't 
there somewhere a way to convert _MI_Time to something usable? Or if not, can 
anyone tell me, what are the arithmetical rules for _MI_Time - I need to 
subtract one from another?


I did some bit fiddling and finally got a piece, that seems to work, but it is 
really ugly:

mattod(Time1) ;                                                      
    mitime(&WaitTime, 0, 0, 0, 50) ;  /*hours,minutes,seconds,1/100*/
    waittime(&WaitTime, _WAIT_NORMAL) ;                              
mattod(Time2) ;                                                      
memcpy(Buf, &Time1, 8) ;                                             
memcpy(&Tim11, Buf, 4) ;                                             
memcpy(&TimShift, &Buf[4], 4) ;                                      
Tim12 = TimShift >> 22 ;                                             
memcpy(Buf, &Time2, 8) ;                                             
memcpy(&Tim21, Buf, 4) ;                                             
memcpy(&TimShift, &Buf[4], 4) ;                                      
Tim22 = TimShift >> 22 ;                                             
Diff = (Tim21 - Tim11) * 1000 + Tim22 - Tim12 ;                      
printf("Diff : %d ms\n", Diff) ;                                     

The idea of mitime and waittime is simply to compare printed result to 500ms 
delay.
Isn't it ugly?
Is it the only way?

TIA,

Jevgeni Astanovski

_______________________________________________
This is the C programming iSeries / AS400 (C400-L) mailing list
To post a message email: C400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/c400-l
or email: C400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/c400-l.



As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.