You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							76 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							76 lines
						
					
					
						
							1.5 KiB
						
					
					
				| /* LINTLIBRARY */ | |
| 
 | |
| #include <stdio.h> | |
| #include "util.h" | |
|  | |
| #ifdef IBM_WATC		/* IBM Waterloo-C compiler (same as bsd 4.2) */ | |
| #define void int | |
| #define BSD | |
| #endif | |
|  | |
| #ifdef BSD | |
| #include <sys/types.h> | |
| #include <sys/time.h> | |
| #include <sys/resource.h> | |
| #endif | |
|  | |
| #if defined(UNIX60) || defined(UNIX100) || defined(__CYGWIN32__) | |
| #include <sys/types.h> | |
| #include <sys/times.h> | |
| #endif | |
|  | |
| #ifdef vms		/* VAX/C compiler -- times() with 100 HZ clock */ | |
| #include <types.h> | |
| #include <time.h> | |
| #endif | |
|  | |
| 
 | |
| 
 | |
| /* | |
|  *   util_cpu_time -- return a long which represents the elapsed processor | |
|  *   time in milliseconds since some constant reference | |
|  */ | |
| long  | |
| util_cpu_time() | |
| { | |
|     long t = 0; | |
| 
 | |
| #ifdef BSD | |
|     struct rusage rusage; | |
|     (void) getrusage(RUSAGE_SELF, &rusage); | |
|     t = (long) rusage.ru_utime.tv_sec*1000 + rusage.ru_utime.tv_usec/1000; | |
| #endif | |
|  | |
| #ifdef IBMPC | |
|     long ltime; | |
|     (void) time(<ime); | |
|     t = ltime * 1000; | |
| #endif | |
|  | |
| #ifdef UNIX60			/* times() with 60 Hz resolution */ | |
|     struct tms buffer; | |
|     times(&buffer); | |
|     t = buffer.tms_utime * 16.6667; | |
| #endif | |
|  | |
| #ifdef UNIX100 | |
|     struct tms buffer;		/* times() with 100 Hz resolution */ | |
|     times(&buffer); | |
|     t = buffer.tms_utime * 10; | |
| #endif | |
|  | |
| #ifdef __CYGWIN32__ | |
|     /* Works under Windows NT but not Windows 95. */ | |
|     struct tms buffer;		/* times() with 1000 Hz resolution */ | |
|     times(&buffer); | |
|     t = buffer.tms_utime; | |
| #endif | |
|  | |
| #ifdef vms | |
|     tbuffer_t buffer;	/* times() with 100 Hz resolution */ | |
|     times(&buffer); | |
|     t = buffer.proc_user_time * 10; | |
| #endif | |
|  | |
|     return t; | |
| }
 |