home *** CD-ROM | disk | FTP | other *** search
/ Software Du Jour / SoftwareDuJour.iso / BUSINESS / DBASE / DBAPG.ARC / BNCHMK_2.PRG < prev    next >
Text File  |  1984-12-17  |  3KB  |  115 lines

  1. * Program..: BNCHMK_2.PRG
  2. * Author...: Tom Rettig
  3. * Date.....: May 21, 1984
  4. * Notice...: Copyright 1984 by Ashton-Tate.  All rights reserved.
  5. * Version..: dBASE III, version 1.00, 14 Jun 1984
  6. * Notes....: For measuring the execution time of various dBASE
  7. *            commands.
  8. *
  9. SET TALK OFF
  10. DO WHILE .T.
  11.    STORE 0 TO n1, n2
  12.    ?
  13.    INPUT  'Enter number of executions, RETURN to exit  --> ' TO n1
  14.    *
  15.    IF n1 = 0
  16.       SET TALK ON
  17.       RETURN
  18.    ENDIF
  19.    ?
  20.    ?
  21.    ?
  22.    ?
  23.    *
  24.    * Toggle switch algorithm for setting TALK during the timing...
  25.    SET BELL OFF
  26.    @ 22, 0 SAY "Talk is set "
  27.    @ 23, 0 SAY "Press SPACE to change, or RETURN to continue."
  28.    SET COLOR TO 15/0
  29.    @ 22,12 SAY "OFF"
  30.    toggle = ' '
  31.    is_on  = .F.
  32.    DO WHILE .NOT. toggle $ '?'
  33.       STORE '?' TO toggle
  34.       SET COLOR TO 0/0
  35.       @ 22,15 GET toggle
  36.       READ
  37.       CLEAR GETS
  38.       SET COLOR TO 15/0
  39.       DO CASE
  40.          CASE toggle = ' ' .AND. is_on
  41.             @ 22,12 SAY "OFF"
  42.             is_on    = .F.
  43.          CASE toggle = ' ' .AND. (.NOT. is_on)
  44.             @ 22,12 SAY "ON "
  45.             is_on    = .T.
  46.       ENDCASE
  47.    ENDDO
  48.    @ 23,0
  49.    IF is_on
  50.       SET TALK ON
  51.    ENDIF
  52.    SET BELL ON
  53.    SET COLOR TO 7/0
  54.    *
  55.    *--------------Initialize memvars used in timing loop---------
  56.    
  57.  
  58.    *--------------End initialization of memvars------------------
  59.    *
  60.    WAIT 'Press any key to START, <Ctrl-Break> to cancel...'
  61.    @ 23,0
  62.    ?
  63.    ? CHR(7) + 'Time started...'
  64.    *
  65.    * Get start time...
  66.    t1 = TIME()
  67.    *
  68.    * Timing loop...   
  69.    DO WHILE n2 < n1
  70.       *----------------Start of timed commands-------------------
  71.  
  72.  
  73.  
  74.       *----------------End of timed commands---------------------
  75.       n2 = n2+1
  76.    ENDDO
  77.    *
  78.    * Get end time...
  79.    t2 = TIME()
  80.    *
  81.    ? CHR(7) + '***DONE***'
  82.    ?
  83.    ? '         hh:mm:ss'
  84.    ? '  Start:', t1
  85.    ? ' Finish:', t2
  86.    ? '         --------'
  87.    *
  88.    * Elapsed time algorithm:
  89.    IF is_on
  90.       SET TALK OFF
  91.    ENDIF
  92.    *
  93.    * Convert start and end times to numeric seconds; es = elapsed seconds...
  94.    es = ( VAL(t2)*3600 + VAL(SUBSTR(t2,4))*60 + VAL(SUBSTR(t2,7)) ) -;
  95.         ( VAL(t1)*3600 + VAL(SUBSTR(t1,4))*60 + VAL(SUBSTR(t1,7)) )
  96.    *
  97.    * Convert elapsed seconds to 'hh:mm:ss', and add leading zeros...
  98.    et = SUBSTR(STR( INT(es/3600)                       +100,3),2) +':'+;
  99.         SUBSTR(STR( INT(es/  60) - ( INT(es/3600)*60 ) +100,3),2) +':'+;
  100.         SUBSTR(STR(     es       - ( INT(es/  60)*60 ) +100,3),2) 
  101.    *
  102.    * Based on the algorithm:
  103.    * hh  = INT( es / 3600 )
  104.    * mm  = INT( es /   60 ) - (hr*60)
  105.    * ss  =      es          - (mn*60) - (hr*3600)
  106.    * et  = SUBSTR(STR(hh+100,3),2) +':'+ SUBSTR(STR(mm+100,3),2) +':'+ ;
  107.    *       SUBSTR(STR(ss+100,3),2)
  108.    *
  109.    *
  110.    ? 'Elapsed:', et
  111.    ?
  112. ENDDO [WHILE .T.]
  113. *
  114. * EOF: Bnchmk_2.prg
  115.