gnugo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnugo-devel] modify gg_cputime() for win95/win98


From: pcibusgood
Subject: [gnugo-devel] modify gg_cputime() for win95/win98
Date: Tue, 05 Apr 2005 14:01:40 +0800

Because GetProcessTimes() not support win95/win98.





double

gg_cputime(void)

{

#if HAVE_SYS_TIMES_H && HAVE_TIMES && HAVE_UNISTD_H

    struct tms t;

    times(&t);

    return (t.tms_utime + t.tms_stime + t.tms_cutime + t.tms_cstime)

            / ((double) sysconf(_SC_CLK_TCK));

#elif defined(WIN32)

        OSVERSIONINFO osversion;



        memset(&osversion, 0, sizeof(OSVERSIONINFO));

        osversion.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

        GetVersionEx(&osversion);



        if(osversion.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)

        {

                LARGE_INTEGER tCounter, i64PerfFrequency;



                double tRetTime;



                QueryPerformanceFrequency( &i64PerfFrequency );

                QueryPerformanceCounter( &tCounter );



                tRetTime = (double)tCounter.QuadPart;

                tRetTime = tRetTime / i64PerfFrequency.QuadPart;



                return tRetTime;

        }

        else

        {

                FILETIME creationTime, exitTime, kernelTime, userTime;

                ULARGE_INTEGER uKernelTime, uUserTime, uElapsedTime;

                GetProcessTimes(GetCurrentProcess(), &creationTime, &exitTime,

                                                &kernelTime, &userTime);

                uKernelTime.LowPart = kernelTime.dwLowDateTime;

                uKernelTime.HighPart = kernelTime.dwHighDateTime;

                uUserTime.LowPart = userTime.dwLowDateTime;

                uUserTime.HighPart = userTime.dwHighDateTime;

                uElapsedTime.QuadPart = uKernelTime.QuadPart + 
uUserTime.QuadPart;

                /*_ASSERTE(0 && "Debug Times");*/

                /* convert from multiples of 100nanosecs to seconds: */

                return (signed __int64)(uElapsedTime.QuadPart) * 1.e-7;

        }

#else

    static int warned = 0;

    if (!warned) {

      fprintf(stderr, "CPU timing unavailable - returning wall time.");

      warned = 1;

    }

    /* return wall clock seconds */

    return gg_gettimeofday();

#endif

}
______________________________________


×¢²áÐÂÀËÃâ·ÑÓÊÏ䣬¼¤»î2G¿Õ¼ä£¡£¨ http://mail.sina.com.cn/chooseMode.html £©

===================================================================
Êý×Ö»¯ÓéÀÖÉú»î±»Ë­¡°ÍµÍµµØÔڸı䡱 
(http://ad4.sina.com.cn/wx/ads/hpzhuiyu44.html)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]