ftp.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2002/04/29/02:19:11

X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-bounces using -f
From: "Alex Vinokur" <alexvn AT bigfoot DOT com>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: uclock_t & gcc 3.0.4 on Windows-2000
Date: Mon, 29 Apr 2002 09:03:19 +0200
Organization: Scopus
Lines: 306
Message-ID: <aainkc$appbb$1@ID-79865.news.dfncis.de>
References: <Pine DOT SUN DOT 3 DOT 91 DOT 1020425135939 DOT 20291A-100000 AT is> <aag1m1$ab8p4$1 AT ID-79865 DOT news DOT dfncis DOT de> <3CCC0690 DOT CFF305C6 AT is DOT elta DOT co DOT il>
NNTP-Posting-Host: gateway.scopus.net (62.90.123.5)
X-Trace: fu-berlin.de 1020060109 11330923 62.90.123.5 (16 [79865])
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2600.0000
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

"Eli Zaretskii" <eliz AT is DOT elta DOT co DOT il> wrote in message news:3CCC0690 DOT CFF305C6 AT is DOT elta DOT co DOT il...
| Alex Vinokur wrote:
| >
| > Unfortunaly the clock() has insufficient time accuracy.
| > Details :
| > 1. Log file : on Windows2000 when using clock()
| >     http://groups.google.com/groups?selm=aa8ubf%248pubf%241%40ID-79865.news.dfncis.de
| >    (or news:aa8ubf$8pubf$1 AT ID-79865 DOT news DOT dfncis DOT de in news:misc.test )
| > 2. Log file : on Windows98 when using uclock()
| >    http://alexvn.freeservers.com/s1/pf_dir/log5.txt
|
| Sorry, I cannot figure out what does the URL under 1. say, and I cannot
| access number 2.

I don't know why there is a problem with access to http://alexvn.freeservers.com/s1/pf_dir/log5.txt

|
| Can you summarize what you see on these two systems?  What accuracy do you
| observe?

                                               Summary :


|| ###### C++  Pseudocode : BEGIN ######

// Something like


#define TOTAL_ITERATIONS <Some number>
#define PER_CALLS  <Some number>
// PER_CALLS < TOTAL_ITERATIONS

// -----------------------
class  ClassPerfoMeterUclock
{
  private :
    uclock_t start_time_;
    uclock_t end_time_;
  public :
    ClassPerfoMeterUclock ()
    {
      start_time_ = uclock();
    }
    ~ClassPerfoMeterUclock ()
    {
      end_time_ = uclock();
      // Calculation run time (per PER_CALLS);
    }
}

// -----------------------
class  ClassPerfoMeterClock
{
  private :
    clock_t start_time_;
    clock_t end_time_;
  public :
    ClassPerfoMeterClock ()
    {
      start_time_ = clock();
    }
    ~ClassPerfoMeterClock ()
    {
      end_time_ = clock();
      // Calculation run time (per PER_CALLS);
    }
}

// -----------------------------
void demo_11 (void)
{
char str[] = "ABCD";

#ifded WIN98
  ClassPerfoMeterUclock ins_meter();
#endif

#ifded WIN2000
  ClassPerfoMeterClock ins_meter();
#endif

  for (int i = 0; i < TOTAL_ITERATIONS; i++ )
  {
    strlen(str);
  }
}

|| ###### C++  Pseudocode : END ########



|| ###### Windows98 & uclock : BEGIN ######

========================
Windows98

gcc version 2.95.3
  GNU C++ version 2.95.3 20010315/djgpp (release) (djgpp)
  compiled by GNU C version 2.95.3 20010315/djgpp (release).
========================

   -------------------------
   --- Testing demo_11() ---
   -------------------------

-- TOTAL_ITERATIONS == 90000
-- PER_CALLS        == 10000

---------------------------------------------
--- Results sorted according to a test number
---------------------------------------------
 Test[    1] :          582  [  90000 iterations]
 Test[    2] :          583  [  90000 iterations]
 Test[    3] :          582  [  90000 iterations]
 Test[    4] :          684  [  90000 iterations]
 Test[    5] :          582  [  90000 iterations]
 Test[    6] :          583  [  90000 iterations]
 Test[    7] :          583  [  90000 iterations]
 Test[    8] :          582  [  90000 iterations]
 Test[    9] :          583  [  90000 iterations]
 Test[   10] :          582  [  90000 iterations]
 Test[   11] :          583  [  90000 iterations]
 Test[   12] :          590  [  90000 iterations]
 Test[   13] :          582  [  90000 iterations]
 Test[   14] :          583  [  90000 iterations]
 Test[   15] :          582  [  90000 iterations]

|| ###### Windows98 & uclock : END ########







|| ###### Windows2000 & clock : BEGIN ######

========================
Windows-2000
   Intel(R) Pentium
   R(4) CPU 1.70GHz

gcc version 3.0.4
  GNU CPP version 3.0.4 (cpplib) (80386, BSD syntax)
  GNU C++ version 3.0.4 (djgpp) compiled by GNU C version 3.0.4.
  Configured with: ../configure i586-pc-msdosdjgpp --prefix=/dev/env/DJDIR --disable-nls
  Thread model: single

-- CLOCKS_PER_SEC   == 91 --> from time.h
========================

   -------------------------
   --- Testing demo_11() ---
   -------------------------

-- TOTAL_ITERATIONS == 750000
-- PER_CALLS        == 250000

 ---------------------------------------------
 --- Results sorted according to a test number
 ---------------------------------------------
 Test[    1] :            0  [ 750000 iterations] ---> Too small
 Test[    2] :            0  [ 750000 iterations] ---> Too small
 Test[    3] :            0  [ 750000 iterations] ---> Too small
 Test[    4] :            0  [ 750000 iterations] ---> Too small
 Test[    5] :            0  [ 750000 iterations] ---> Too small
 Test[    6] :            0  [ 750000 iterations] ---> Too small
 Test[    7] :            0  [ 750000 iterations] ---> Too small
 Test[    8] :            1  [ 750000 iterations]
 Test[    9] :            1  [ 750000 iterations]
 Test[   10] :            0  [ 750000 iterations] ---> Too small
 Test[   11] :            0  [ 750000 iterations] ---> Too small
 Test[   12] :            0  [ 750000 iterations] ---> Too small
 Test[   13] :            0  [ 750000 iterations] ---> Too small
 Test[   14] :            0  [ 750000 iterations] ---> Too small
 Test[   15] :            0  [ 750000 iterations] ---> Too small


|| ###### Windows2000 & clock : END ########


APPENDIX. File time.h on Windows2000
|| ###### Windows2000 -> File time.h : BEGIN ######

/* Copyright (C) 1999 DJ Delorie, see COPYING.DJ for details */
/* Copyright (C) 1998 DJ Delorie, see COPYING.DJ for details */
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
#ifndef __dj_include_time_h_
#define __dj_include_time_h_

#ifdef __cplusplus
extern "C" {
#endif

#ifndef __dj_ENFORCE_ANSI_FREESTANDING

/* 65536(tics/hour) / 3600(sec/hour) * 5(scale) = 91.02
   The 5 is to make it a whole number (18.2*5=91) so that
   floating point ops aren't required to use it. */
#define CLOCKS_PER_SEC 91

#include <sys/djtypes.h>

/* Some programs think they know better... */
#undef NULL

#define NULL 0
__DJ_clock_t
#undef __DJ_clock_t
#define __DJ_clock_t
__DJ_size_t
#undef __DJ_size_t
#define __DJ_size_t
__DJ_time_t
#undef __DJ_time_t
#define __DJ_time_t

struct tm {
  int tm_sec;
  int tm_min;
  int tm_hour;
  int tm_mday;
  int tm_mon;
  int tm_year;
  int tm_wday;
  int tm_yday;
  int tm_isdst;
  char *__tm_zone;
  int __tm_gmtoff;
};

char *  asctime(const struct tm *_tptr);
clock_t  clock(void);
char *  ctime(const time_t *_cal);
double  difftime(time_t _t1, time_t _t0);
struct tm * gmtime(const time_t *_tod);
struct tm * localtime(const time_t *_tod);
time_t  mktime(struct tm *_tptr);
size_t  strftime(char *_s, size_t _n, const char *_format, const struct tm *_tptr);
time_t  time(time_t *_tod);

#ifndef __STRICT_ANSI__

#define CLK_TCK CLOCKS_PER_SEC

extern char *tzname[2];

void tzset(void);

#ifndef _POSIX_SOURCE

#define tm_zone __tm_zone
#define tm_gmtoff __tm_gmtoff

struct timeval {
  time_t tv_sec;
  long tv_usec;
};

struct timezone {
  int tz_minuteswest;
  int tz_dsttime;
};

#include <sys/types.h>

typedef long long uclock_t;
#define UCLOCKS_PER_SEC 1193180

int  gettimeofday(struct timeval *_tp, struct timezone *_tzp);
unsigned long rawclock(void);
int  select(int _nfds, fd_set *_readfds, fd_set *_writefds, fd_set *_exceptfds, struct timeval *_timeout);
int  settimeofday(struct timeval *_tp, ...);
void  tzsetwall(void);
uclock_t uclock(void);

#endif /* !_POSIX_SOURCE */
#endif /* !__STRICT_ANSI__ */
#endif /* !__dj_ENFORCE_ANSI_FREESTANDING */

#ifndef __dj_ENFORCE_FUNCTION_CALLS
#endif /* !__dj_ENFORCE_FUNCTION_CALLS */

#ifdef __cplusplus
}
#endif

#endif /* !__dj_include_time_h_ */

|| ###### Windows2000 -> File time.h : END ########


Thanks in advance,
--
====================
  Alex Vinokur
    http://up.to/alexvn
    http://go.to/alexv_math
    mailto:alexvn AT bigfoot DOT com
    mailto:alexvn AT go DOT to
  ====================




- Raw text -


  webmaster     delorie software   privacy  
  Copyright 2019   by DJ Delorie     Updated Jul 2019