ºìÁªLinuxÃÅ»§
Linux°ïÖú

Linux ºÍ Windows 2000 ÉϵĸßÐÔÄܱà³Ì¼¼Êõ

·¢²¼Ê±¼ä:2005-11-23 12:33:34À´Ô´:ºìÁª×÷Õß:linux_
ÄÚÈÝ£º


ÐÔÄܲâÊÔ¸ÅÊö
²âÁ¿ÊµÓóÌÐò
²âÁ¿Ê±¼ä
½áÊøÓï
²Î¿¼×ÊÁÏ
¹ØÓÚ×÷Õß

»¶Ó­¹âÁÙ±¾×¨À¸£¬Õâ¸öÐ嵀 Linux רÀ¸Ö÷ÒªÑÝʾºÍ±È½ÏÁË Linux ºÍ Windows 2000 ²Ù×÷ϵͳµÄÐÔÄÜ¡£×¨À¸×÷¼Ò Ed Bradford ±È½ÏÁ˲Ù×÷ϵͳ¼¶µÄÌØÐÔ£¬¶ø²»ÊÇÓ¦ÓóÌÐò£¬ÒÔ±ãÈÃÈËÃÇÁ˽âÿ¸ö²Ù×÷ϵͳµÄ×î¼ÑÐÔÄÜÌØÐÔ¡£±¾ÎÄ°üº¬ÁËÔ´´úÂ룬ÔÚ¾¡¿ÉÄܹ«Æ½µÄ»·¾³ÖУ¬ËüÃDZíʾÿ¸öƽ̨µÄ¡°×î¼Ñ±à³ÌʵÀý¡±¡£

ÔÚÕâ¸öеÄÎÄÕÂϵÁÐÖУ¬½«Ö÷ÒªÌÖÂÛÓÃÓÚ Linux ºÍ Windows 2000 ²Ù×÷ϵͳµÄ¸ßÐÔÄܱà³Ì¼¼Êõ¡£ÎÒ½«ÑÝʾʵÓÃÇÒÓÐЧµÄ±à³ÌʵÀý£¬ËüÃÇÄܹ»½â¾ö Linux ºÍ Windows 2000 ÉϳöÏÖµÄͬһÎÊÌâ¡£ÎÊÌâ½â¾öÖ®ºó£¬¾ÍÖÁÉÙ¿ÉÒÔ¶Ôÿ¸öƽ̨½øÐÐijһ·½ÃæµÄÐÔÄܲâÁ¿¡£¸÷¸öÐÔÄܲâÊԽű¾ºÍ³ÌÐò½«»áÏÔʾ²Ù×÷ϵͳÌØÐÔµÄËٶȡ£ÎÒµÄÄ¿±êÊÇÑÝʾÈçºÎµÃµ½Ã¿¸ö²Ù×÷ϵͳ¿ÉÄܵÄ×î¼ÑÐÔÄÜ£¬Ë³±ã±È½ÏÒ»ÏÂÕâÁ½¸ö²Ù×÷ƽ̨µÄÐÔÄÜ¡£

ÐÔÄܲâÊÔ¸ÅÊö
ÕâЩ²âÊÔ½«¼ì²âÄÚ´æËٶȡ¢ÏµÍ³µ÷ÓÃËٶȡ¢ÊäÈëÊä³ö×ܺ͡¢ÉÏÏÂÎÄÇл»ËٶȺÍÐí¶àÆäËüÔÚÕâÁ½ÖÖ²Ù×÷ƽ̨ÉÏͨÓõıà³Ì¹¤¾ß¡£µ«ÊÇ£¬²»»á²âÁ¿¶Ô Windows ×¢²á±íµÄ·ÃÎÊ¡£±¾ÎÄÖз¢±íÁËÔ´´úÂ룬Ҳ¿ÉÒÔÃâ·ÑÏÂÔØÕâЩԴ´úÂë¡£ÔÚÕâÀï×·ÇóµÄÊǸ»Óн¨ÉèÐÔµÄÆÀ¼Û¡£ÎÒµÄÄ¿µÄÊÇÊ×ÏÈչʾ×îºÃµÄ±à³ÌʵÀý -- È»ºó±È½ÏÐÔÄÜ¡£Ê®·Ö»¶Ó­¶ÁÕßÔÚÌÖÂÛÂÛ̳ÉÏÕë¶Ô±¾ÎÄ·¢±íÄúµÄ¿´·¨¡£

ÎÒÃǽ« Linux ¿´×÷ÊÇÁ½¸ö²Ù×÷ϵͳ£ºLinux 2.2.16 ÄÚºËºÍ 2.4.2 Äںˡ£Windows 2000 ÊÇÖ¸°æ±¾ Windows 2000 2195 ϵͳ£¬·¢ÐÐʱ£¬³Æ×÷ Windows XP Äںˡ£ËùÓвâÊÔ¶¼»ùÓÚÍêÈ«ÏàͬµÄÓ²¼þ¡£Ê×Ñ¡Ó²¼þÊÇË«Òýµ¼ IBM ThinkPad 600X£¨´ø 576 MB ÄÚ´æºÍÁ½¸ö 12-GB ´ÅÅÌ£©¡£

ËäÈ»ºÜÉÙÓõ½ÃæÏò¶ÔÏóµÄ´úÂ룬µ«»¹ÊÇÓà C++ ±àдÁ˳ÌÐò¡£Ê¹Óà C++ µÄÔ­ÒòÖ»ÊÇ C ¾ßÓкÜÇ¿µÄÀàÐͼì²éÌص㡣ÔÚ Linux ÉÏ£¬Ê¹Óà Red Hat 7.0 ·Ö·¢°æËù´øµÄ gcc¡£ÔÚ Windows 2000 ÉÏ£¬Ê¹Óà Visual Studio 6.0 Ï嵀 Microsoft C++ °æ±¾ 12.00.8168¡£

²âÁ¿ÊµÓóÌÐò
Ê×ƪÎÄÕ¶¨ÒåÁË¶Ô Windows 2000 ºÍ Linux ½øÐвâÁ¿ºÍ±¨¸æ²âÁ¿½á¹ûËùÐèµÄʵÓÃÀýÐгÌÐò¡£ËùÁгöµÄ¹¤¾ßºÜÉÙ£ºÓÃÓÚ²âÁ¿Ê±¼äµÄ½Ó¿Ú¡¢·µ»ØÃèÊö²Ù×÷ϵͳµÄ×Ö·û´®µÄÀý³Ì¡¢¼òµ¥ malloc() ÄÚ´æ·ÖÅäÀý³ÌµÄ¼òµ¥ÇÒÓÐЧµÄ½Ó¿Ú£¬ÒÔ¼°´¦Àí´óÊýµÄÊäÈëÀý³Ì¡££¨ÒÔϽ«ÏêϸÌÖÂÛ¶¨Ê±Àý³Ì£©¡£

ÕâÀïµÄÄÚ´æ·ÖÅäÆ÷³ÆΪ Malloc(int)¡£ËüËù×öµÄ¾ÍÊǵ÷Óà malloc(int) Àý³Ì£¬Èç¹û malloc(int) ʧ°Ü£¬Malloc() ´òÓ¡Ò»Ìõ´íÎóÏûÏ¢²¢Í˳ö¡£ÔÚ²âÊÔÄÚ´æ·ÖÅäÐÔÄÜʱ£¬Ã»ÓÐÓÃÕâ¸öÀý³Ì£¬µ«Í¬Ê±£¬ËüÊÇÁ÷ÏßÐαàÂë¡£ÕâÀïʹÓà malloc() ÊÇÓÉÓÚÔÚ Windows 2000 ºÍ Linux Öж¼ÓÐÕâ¸öº¯Êý¡£Malloc() ÔÚÕâÁ½¸öϵͳÖÐÊǹ«Æ½¶øµÈͬµÄ¡£

½ÓÏÂÀ´µÄÒ»¸öÀý³ÌÊÇ atoik(char *)¡£Õâ¸öÀý³ÌÓë atoi() Àý³ÌÊÇÏàͬµÄ£¬µ«Ëü´øÒ»¸öºó׺ "k" »ò "m"¡£ºó׺ "k" »ò "m" ±íʾ£º¶ÔÓÚ "k"£¬½«ÒѽâÎöµÄÊý×Ö³ËÒÔ 1024£¬¶ÔÓÚ "m"£¬½«ÒѽâÎöµÄÊý×Ö³ËÒÔ 1024*1024¡£"k" ºÍ "m" ¿ÉÒÔÊÇ´óСд£¬²¢ÇÒ¿ÉÒÔ¸øËüÃǸ½¼ÓÈκÎÊý×Ö¡£Atoik() Ö»·µ»Ø 32 룬ËùÒÔµ±³öÏÖÈκδóÓÚ»òµÈÓÚ 2 GB µÄÊý×Öʱ½«²»ÄܼÌÐøÔËÐС£µ±³öÏÖÕâ¸öÎÊÌâʱ£¬Ê¹ÓÃÎÒÃDZàдµÄ atoik64() º¯Êý¡£Õâ¸öÀý³ÌÔÚÁ½¸ö²Ù×÷ϵͳÖÐÊÇÏàͬµÄ¡£

²âÁ¿Ê±¼ä
ÔÚÕâÁ½¸ö²Ù×÷ϵͳÉÏÈçºÎ²âÁ¿Ê±¼ä£¿ÈÃÎÒÃÇ¿´Ò»ÏÂÎÒÃÇÓм¸ÖÖÑ¡Ôñ¡£ÔÚ Windows 2000 ÖÐÓÐÁ½¸ö API ¿ÉÒÔ²âÁ¿Ê±¼ä¼ä¸ô¡£µÚÒ»¸öÊÇ GetTickCount()¡£Õâ¸öº¯Êý±¨¸æ×Ô´ÓϵͳÆô¶¯ºó¾­¹ýµÄºÁÃëÊý¡£GetTickCount() ÊÇÒÔ¡°Ê±ÖÓ±¨Ê±Ðźš±Îª¿ÅÁ£¶È¡£ÕâÒâζ×ÅÖ»Óе±ÏµÍ³·¢³öʱÖÓ±¨Ê±ÐźÅʱÕâ¸öº¯Êý²Å»á¸üÐÂÕâ¸öÖµ¡£ÔÚ Windows ÖУ¬Õâ¸ö¸üмä¸ôΪ 10 ºÁÃë¡£ËùÒÔËüµÄ¿ÅÁ£¶È²»³¬¹ý 10 ºÁÃë»ò 10000 ΢Ãî¡£

Windows 2000 »¹ÓÐÒ»¸ö QueryPerformanceCounter() API£¬ËüÓÃÀ´ÖØÐÂÐÞÕý 64 λ¸ß·Ö±æÂÊÐÔÄܼÆÊýÆ÷µÄµ±Ç°Öµ¡£µ÷Óà QueryPerformanceCounter() µÄ½á¹ûÖеÄÿ´Î¡°±¨Ê±¡±È¡¾öÓÚ QueryPerformanceFrequency() ·µ»ØµÄÖµ¡£ÆµÂÊÊÇÿÃë¼ÆÊýÆ÷µÄÔö¼ÓÁ¿£¬ËùÒÔÃë¿ÉÒÔ±íʾ³É£º

Óà QueryPerformanceCounter() ¼ÆËãÃë

LARGE_INTEGER tim, freq;
double seconds;

QueryPerformanceCounter(&tim);
QeryPerformanceFrequency(&freq);
seconds = (double)tim / (double) freq;





ÓÉÓÚ GetTickCount() µÄ·Ö±æÂÊÌ«µÍ£¬ÎÒÃǽ«Ö»Ê¹Óà QueryPerformanceCounter¡£ÎÒÃDZØÐëҪעÒ⣬Èç¹û¼Æʱ¶Ìµ½Óë QueryPerformanceCounter() API µÄ¿ªÏúÒ»Ñùʱ£¬ÄÇôÎÒÃǵĽá¹û¿ÉÄÜʱ²»¿É¿¿µÄ¡£ÏÂÃæÎÒÃǽ«²âÁ¿¼ÆʱÀý³ÌµÄ¿ªÏú¡£

ÔÚ Linux ÉÏ£¬Ê¹Óà gettimeofday() API¡£Ö»ÓÐÕâ¸ö API ¿ÉÒÔÂú×ãÎÒÃÇÔڴκÁÃ뼶ʱ¼äµÄÐèÇó¡£

Ñ¡ÔñÍêҪʹÓÃµÄ API ºó£¬ÐèÒª¶¨Òå×Ô¼ºµÄ API£¬ÕâÑù¿ÉÒÔʹ³ÌÐòÔÚ²»ÖªµÀÖ÷»ú²Ù×÷ϵͳµÄÇé¿öÏÂÒ²¿ÉÒÔʹÓÃÕâЩ API¡£ÎÒÃÇÑ¡ÓÃÏÂÃæµÄ½Ó¿ÚÀ´ÊµÏÖÕâЩ¹¦ÄÜ£º

¼ÆʱÀý³Ì½Ó¿Ú

void tstart();
void tend();
double tval();





µ±µ÷Óà Tstart() ʱ£¬Ëü¼Ç¼¾²Ì¬ÄÚ´æÖеÄʱ¼äÖµ¡£µ±µ÷Óà Tend() ʱ£¬Ëü¼Ç¼¾²Ì¬ÄÚ´æÖеÄʱ¼äÖµ¡£Tval() ²ÉÓà tstart ºÍ tend ʱ¼äÖµ£¬½«ËüÃÇת»»ÎªË«¾«¶ÈÊý£¬È»ºó¼õÈ¥ËüÃÇ£¬ÒÔ·µ»ØË«¾«¶ÈÐÎʽµÄ½á¹û¡£Õâ¸ö½Ó¿ÚÔÚ Linux ºÍ Windows ÉϺÜÈÝÒ×ʵÏÖ£¬ËüÖ´ÐÐÁËËùÐèÒªµÄ¼Æʱ¹¦ÄÜ¡£

Linux ºÍ Windows 2000 ϼÆʱÀý³ÌµÄʵÏÖÈçÏ¡£ÓÉÓÚ²»ÄܱÜÃâ¶ÔϵͳµÄÒÀÀµÐÔ£¬ËùÒÔÎÒÃǵÄÄ¿±êÊÇÔÚ¾¡¿ÉÄܵؼõСÌõ¼þ¶¨ÒåµÄÇé¿öÏ£¬±àд×î¼ÑµÄ´úÂë¡£ÒÔÏÂÊǼÆʱÀý³ÌµÄÇåµ¥¡£

¼ÆʱÀý³Ì

#ifdef _WIN32
static LARGE_INTEGER _tstart, _tend;
static LARGE_INTEGER freq;

void tstart(void)
{
static int first = 1;

if(first) {
QueryPerformanceFrequency(&freq);
first = 0;
}
QueryPerformanceCounter(&_tstart);
}
void tend(void)
{
QueryPerformanceCounter(&_tend);
}

double tval()
{
return ((double)_tend.QuadPart -
(double)_tstart.QuadPart)/((double)freq.QuadPart);
}
#else
static struct timeval _tstart, _tend;
static struct timezone tz;

void tstart(void)
{
gettimeofday(&_tstart, &tz);
}
void tend(void)
{
gettimeofday(&_tend,&tz);
}

double tval()
{
double t1, t2;

t1 = (double)_tstart.tv_sec + (double)_tstart.tv_usec/(1000*1000);
t2 = (double)_tend.tv_sec + (double)_tend.tv_usec/(1000*1000);
return t2-t1;
}
#endif





×îºóÒ»¸öµÄÀý³ÌÊÇ "char *ver()"¡£Õâ¸ö¼òµ¥µÄº¯Êý·µ»ØÒ»¸öÃèÊöµ±Ç°²Ù×÷ϵͳ»·¾³µÄ×Ö·û´®¡£ÕýÈçÔÚÔ´´úÂëÖÐËù¼û£¬ËüÔÚÿ¸ö²Ù×÷ƽ̨É϶¼ÍêÈ«²»Í¬¡£ÔÚ¸ÃÀý³Ì½áβ´¦ÊÇÓÃÓÚ²âÊÔµÄÌõ¼þÐÔ¶¨ÒåµÄ main() Àý³Ì¡£±àÒë¹ý³ÌÈçÏ£º

½« ver.cpp ±àÒë³ÉΪ³ÌÐò

gcc -DMAIN -O2 ver.cpp -o ver

»ò

cl -DMAIN -O2 ver.cpp -o ver.exe





ver.exe ³ÌÐòÓÃÓÚ½«²Ù×÷ϵͳ°æ±¾ÐÅÏ¢¼Ç¼µ½Êä³öÎļþ¡£

Ver.cpp - ´òÓ¡²Ù×÷ϵͳ°æ±¾
#ifdef _WIN32
#include
#else
#include
#endif
#include

int ver_underbars = 0;

char *ver()
{
char *q;
#ifdef _WIN32
static char verbuf[256];
#else
static char verbuf[4*SYS_NMLN + 4];
#endif

#ifdef _WIN32
OSVERSIONINFO VersionInfo;

VersionInfo.dwOSVersionInfoSize = sizeof(VersionInfo);
if(GetVersionEx(&VersionInfo)) {
if(strlen(VersionInfo.szCSDVersion) > 200)
VersionInfo.szCSDVersion[100] = 0;
sprintf(verbuf, "Windows %d.%d build%d PlatformId %d SP=\"%s\"",
VersionInfo.dwMajorVersion,
VersionInfo.dwMinorVersion,
VersionInfo.dwBuildNumber,
VersionInfo.dwPlatformId,
VersionInfo.szCSDVersion);
}
else {
strcpy(verbuf, "WINDOWS UNKNOWN");
}
#else
struct utsname ubuf;

if(uname(&ubuf)) {
strcpy(verbuf, "LINUX UNKNOWN");
}
else {
sprintf(verbuf,"%s %s %s %s",
ubuf.sysname,
ubuf.release,
ubuf.version,
ubuf.machine);
}
#endif
// Substitute an underbar for white space. Makes output
// easier to parse.
if(ver_underbars) {
for(q = verbuf; *q; q++)
if(*q == || *q == \ || *q == \ ||
*q == \ || *q == \ || *q == \f)
*q = \_;
}
return verbuf;
}

// gcc -DMAIN ver.cpp -o ver -- produces a simple test program.
#ifdef MAIN
int main(int ac, char *av)
{
if(ac > 1) ver_underbars = 1;
printf("%s\n", ver());
return 0;
}
#endif





ÉÏÃ涨ÒåµÄ¼Æʱº¯Êý¿ÉÒÔÂú×ãÎÒÃǵÄÐèÒª¡£¿ªÊ¼Ê¹ÓÃËüÃÇ֮ǰ£¬Ó¦¸ÃÖªµÀËüÃÇÒªÖ´Ðжà¾Ã¡£Êµ¼ÊÉÏ£¬ÎÒÃÇÖ»ÐèÒªÖªµÀ tstart() ºÍ tend() ÒªÖ´Ðж೤ʱ¼ä¡£ÓÉÓÚÕâÁ½¸öº¯ÊýÔÚÐÎʽÉÏÊÇÒ»ÑùµÄ£¬Òò´ËÖ»ÐèÒª¼ÆËãÆäÖÐÒ»¸öµÄÖ´ÐÐʱ¼ä¡£ÔÚ Windows 2000 ºÍ Linux ÖУ¬Ê¹Óà time-timers.cpp ³ÌÐò¶Ô¼Æʱº¯Êý½øÐмÆʱ·ÖÎö¡£Çë×¢Ò⣬ÕâÀïÖ»ÁгöÁË main() Àý³Ì¡£Êµ¼Ê³ÌÐò°üÀ¨ËùÓмÆʱÆ÷º¯ÊýºÍÇ°ÃæÇåµ¥ÖÐµÄ atoik() Ô´´úÂë¡£

time-timers.cpp - ¼Æʱ¶¨Ê±Æ÷µÄ³ÌÐò

char *applname;

int main(int ac, char *av[])
{
long count = 100000;
long i;
double t;
char *v = ver();
char *q;

applname = av[0];
if(strrchr(applname,SLASHC))
applname = strrchr(applname,SLASHC) + 1;

if(ac > 1) {
count = atoik(av[1]);
ac--;
av++;
if(count < 0)
count = 100000;
}
tstart();
for(i = 0; i < count; i++)
tend();
tend();
t = tval();
printf("%s: ",applname);
printf("%d calls to tend() = %8.3f seconds %8.3f usec/call\n",
count,
t,
(t/( (double) count ))*1E6);

return 0;
}






Ò»ÇоÍÐ÷¡£ÏÖÔÚ±àÒë time-timers.cpp ³ÌÐò£¬·½Ê½ÈçÏ£º

±àÒë time-timers.cpp

ÔÚ LINUX ÉÏ
gcc -O2 time-timers.cpp -o time-timers

ÔÚ Windows 2000 ÉÏ
cl -O2 time-timers.cpp -o time-timers.exe





Õâ¸ö³ÌÐòֻʹÓÃÒ»¸ö¿ÉÑ¡±äÁ¿¡£È±Ê¡Çé¿öÏ£¬³ÌÐòµ÷Óà tend() º¯Êý 100,000 ´Î¡£Öظ´ÔËÐиóÌÐò¿É±£Ö¤ÖØÐÂÉú³Éʱ¼ä½á¹û¡£ÎÒÃÇʹÓÃÁËȱʡ¼ÆÊý£¬ÔËÐÐÁ˸óÌÐò 10 ´Î¡£ÔÚ Linux 2.2.16¡¢Linux 2.4.2 ºÍ Windows 2000 µÄ±íÖзֱðÏÔʾÁ˽á¹û¡£

ÔÚͬһ̨ Thinkpad É쵀 Linux 2.2.16¡¢Linux 2.4.2 ºÍ Windows 2000 ÖУ¬ÎÒÔËÐÐÁËÒÔϽű¾¡£ÊÂʵÉÏ£¬×î³õÎÒʹÓÃÁË Linux 2.4.2 µÄ¶Ô³Æ¶à´¦Àí (SMP) °æ±¾¡£ÎÒÎÞÒâÖÐʹÓÃÁË SMP °æ±¾½øÐй¹½¨ºÍ²âÊÔ¡£·¢ÏÖÕâ¸öÇé¿öºó£¬ÎÒ»¹¹¹½¨Á˵¥´¦ÀíÆ÷°æ±¾²¢ÓÃÆä½øÐÐÁ˲âÊÔ¡£ÏÂÃæ×ܽáÁËÕâÁ½¸ö°æ±¾µÄ½á¹û£¨Èç¹ûÓÐÐËȤ£©¡£

ÔËÐÐ running time-timers µÄ½Å±¾

ver > time-timers.out
for i in 1 2 3 4 5 6 7 8 9 10
do
time-timers 1m
done >> time-timers.out
for i in 1 2 3 4 5 6 7 8 9 10
do
time-timers 1m
done >> time-timers.out





Õâ¸ö½Å±¾½«°Ñ¶Ô tend() µÄÒ»°ÙÍò´Îµ÷ÓÃÔËÐÐ 20 ±é¡£½á¹ûÈçÏ£º

Linux 2.2.16 Linux 2.4.2 Linux 2.4.2 SMP Windows 2000
0.740 usec 0.729 usec 0.806 usec 1.945 usec


ÎÒÄܹ»µÃ³öµÄΨһ½áÂÛÊÇÔÚ Winsows 2000 ÀïµÄ QueryPerformanceCounter() ϵͳµ÷ÓÃÒª±ÈͬһӲ¼þÉ쵀 gettimeofday() API ÂýµÃ¶à¡£¶ÔÓÚÎÒÃǵÄÄ¿µÄÀ´½²£¬¼ÆʱÀý³ÌµÄ 2 ΢ÃëµÄ¿ÅÁ£¶ÈÊÇ×ã¹»µÄ¡£ÔÚ 1 ºÁÃë²âÁ¿Ê±¼äÀֻÓÐǧ·ÖÖ®¶þÊÇʵ¼ÊµÄ²âÁ¿¿ªÏú¡£¼´ 0.2%£¬¶ÔÎÒÃǵÄÄ¿µÄÀ´ËµÊǿɽÓÊܵķ¶Î§¡£

½áÊøÓï
±¾ÎĶ¨ÒåÁËÒÔºóÔÚÕâ¸öϵÁÐÖн«ÒªÓõ½µÄ¼ÆʱÀý³Ì£¬È»ºóÌÖÂÛÁËÈçºÎÓüòµ¥µÄ ver.cpp ³ÌÐòÀ´±êʶÕâ¸ö½á¹û£¬×îºó²âÁ¿ºÍ×ܽáÁ˼ÆʱÀý³ÌµÄ¿ªÏú¡£Õâ¸ö²âÁ¿½á¹û²»¿É±ÜÃâµØÒý³öÁËÎÒÃÇÕýÔÚÌÖÂ۵IJÙ×÷ϵͳÐÔÄÜÌØÕ÷ÎÊÌâ¡£

ͨ¹ýʹÓà time-timers.cpp ³ÌÐò£¬ÎÒÃÇÁ˽⵽¼ÆʱÀý³ÌµÄ¿ªÏúÔÚ Windows ÉÏÉÙÓÚ 2 ΢Ã룬ÔÚ Linux ÉÏÉÙÓÚ 1 ΢Ãë¡£ÇëʹÓÃÌÖÂÛÂÛ̳À´·¢±íÄú¹ØÓÚ±¾Îĵķ´Ó¦¡¢Ïë·¨¡¢ÎÊÌâµÈ¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 1 ÌõÆÀÂÛ

  1. Ywe ÓÚ 2005-11-25 00:30:54·¢±í:

    ²»´í£¬Ñ§Ï°ÁË