Ãâ·Ñ×¢²á ²é¿´ÐÂÌû |

Chinaunix

  ƽ̨ ÂÛ̳ ²©¿Í ÎÄ¿â
×î½ü·ÃÎÊ°å¿é ·¢ÐÂÌû
²é¿´: 4999 | »Ø¸´: 7
´òÓ¡ ÉÏÒ»Ö÷Ìâ ÏÂÒ»Ö÷Ìâ

[C++] Ϊʲôͬһ¸öº¯ÊýÔÚÁíÒ»¸ö³ÌÐòÀïÖ´ÐÐʱ¼ä±ä³É2±¶ [¸´ÖÆÁ´½Ó]

ÂÛ̳»ÕÕÂ:
0
Ìøתµ½Ö¸¶¨Â¥²ã
1Â¥ [ÊÕ²Ø(0)] [±¨¸æ]
·¢±íÓÚ 2013-08-12 18:17 |Ö»¿´¸Ã×÷Õß |µ¹Ðòä¯ÀÀ
#include <stdio.h>
#include <sys/time.h>
#include <stdlib.h>
#define NUM 350000
struct timeval tv1,tv2;
    struct timezone tz1,tz2;
    long int starttime,endtime;
    int a[NUM],b[NUM];
void one_ms();

void one_ms()
    {
            for(int i=0;i<NUM;i++)
            {
                a[i]+=b[i];
            }

    }
int main()
{
    for(int i=0;i<NUM;i++)
            {
                a[i]=rand()%9;
                b[i]=rand()%9;

            }
    gettimeofday(&tv1, &tz1);
    one_ms();
    gettimeofday(&tv2, &tz2);
    starttime=tv1.tv_sec*1000000+tv1.tv_usec;
    endtime=tv2.tv_sec*1000000+tv2.tv_usec;
    //printf("%d\t",j );
    printf("start time is %ld\t",starttime);
    printf("end time is %ld\t",endtime);
    printf("time slaped: %ld(us)\n", (endtime-starttime));

    return 0;
}
ÉÏÃæµÄone_ms´ó¸Å1ms£¬ÎªÊ²Ã´ÔÚÏÂÃæ³ÌÐòÖÐÔËÐÐʱ±ä³É2ms
#include <iostream>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <pthread.h>
#define NUM 352000
#define CPU_NUM 3

using namespace std;
void one_ms();
#include "/root/×ÀÃæ/test_sem/interface/test_sem_interface.h"
#include <pthread.h>

FILE* fLog = NULL;
int a[NUM],b[NUM];

void one_ms()
    {

        for(int i=0;i<NUM;i++)
    {
        a[i]+=b[i];
    }
    }

int main()
{

    for(int i=0;i<NUM;i++)
    {
        a[i]=rand()%9;
        b[i]=rand()%9;

    }

    char pth[256];
    sprintf(pth,"/root/×ÀÃæ/test_sem/test_sem_wait/result/%d.txt",NUM);
    fLog = fopen(pth, "a");

    key_t key = ftok(TEST_SHM_NAME, 'R');
    int shmid = shmget(key, TEST_SHM_SIZE, 0);
    SharedType* pSharedObj = (SharedType*)shmat(shmid, NULL, 0);



//        pSharedObj->Futex = 0;

        //fprintf(fLog, "%d %ld\n", pSharedObj->Index, tv.tv_usec);
    struct sched_param param;
    param.sched_priority = sched_get_priority_max(SCHED_FIFO);


    if (sched_setscheduler(0, SCHED_FIFO, &param) != 0)
    {
        cout << "pthread_setschedparam failed!" << endl;
        getchar();
    }


    cpu_set_t mask;
    CPU_ZERO(&mask);
    CPU_SET(CPU_NUM, &mask);
    //SharedType* pSharedObj = (SharedType*)pObj;

    struct timeval tv1,tv2;
    struct timezone tz1,tz2;
    long int starttime,endtime;
   

//    int rtn = 0;
    for (int i = 0; i < 500; ++i)
    {
if (sched_setaffinity(0, sizeof(mask), &mask) != 0)
    {
        cout << "pthread_setaffinity_np failed!" << endl;
        getchar();
    }        
   
    sem_wait(&pSharedObj->Sem12);
   
    time_t curtime=time(0);
    tm tim =*localtime(&curtime);
    int hour,minu,sec;
    hour=tim.tm_hour;
    minu=tim.tm_min;
    sec=tim.tm_sec;
   
        gettimeofday(&tv1, &tz1);
        one_ms();
        gettimeofday(&tv2, &tz2);
        
        starttime=tv1.tv_sec*1000000+tv1.tv_usec;
        endtime=tv2.tv_sec*1000000+tv2.tv_usec;
        printf("%d:%d:%d\n",hour,minu,sec);
        printf("start time is %ld\t",starttime);
        printf("end time is %ld\t",endtime);
        printf("time slaped: %ld(us)\n", (endtime-starttime));
        fprintf(fLog, "%d:%d:%d\t%ld\t%ld\n", hour,minu,sec,starttime,endtime);
        fflush(fLog);
        sched_yield();
    }

        fclose(fLog);


    return 0;
}
»¹ÓÐpostµÄ´úÂëûÓÐÌù³öÀ´
Çó´óÉñÖ¸½Ì

ÂÛ̳»ÕÕÂ:
0
2Â¥ [±¨¸æ]
·¢±íÓÚ 2013-08-13 10:57 |Ö»¿´¸Ã×÷Õß
ºÃÏñÊÇÒòΪsleepµÄÔ­Òò
#include <stdio.h>
#include <sys/time.h>
#include <stdlib.h>
#include <iostream>
#define NUM 352000
    struct timeval tv1,tv2;
    struct timezone tz1,tz2;
    long int starttime,endtime;
    int a[NUM],b[NUM];
void one_ms();

void one_ms()
    {

//        for(int j=0;j<1;j++)
//        {
            for(int i=0;i<NUM;i++)
            {
                a[i]+=b[i];
            }
//
//        }

    }
int main()
{
    for(int i=0;i<NUM;i++)
    {
        a[i]=rand()%9;
        b[i]=rand()%9;
    }
    for(int j=0;j<200;j++)
    {
    gettimeofday(&tv1, &tz1);
    one_ms();
    gettimeofday(&tv2, &tz2);
    starttime=tv1.tv_sec*1000000+tv1.tv_usec;
    endtime=tv2.tv_sec*1000000+tv2.tv_usec;
    //printf("%d\t",j );
    printf("start time is %ld\t",starttime);
    printf("end time is %ld\t",endtime);
    printf("time slaped: %ld(us)\n", (endtime-starttime));
    usleep(1000);
    }


    return 0;
}
ÔÚµÚÒ»¶Î´úÂëÀï¼Ó¸öforÑ­»·£¬²¢ÇÒÿ´ÎÑ­»·ºósleep 1msÒÔÉÏ  Êä³öÀ´µÄ½á¹û¾ÍÊÇ2ms  ÎªÊ²Ã´»áÕâÑù£¿ÓÐÈËÖªµÀÊÇʲôԭÒòÂð

ÂÛ̳»ÕÕÂ:
0
3Â¥ [±¨¸æ]
·¢±íÓÚ 2013-08-14 10:40 |Ö»¿´¸Ã×÷Õß
ûÈËÂ𣿣¿£¿£¿

ÂÛ̳»ÕÕÂ:
1
¼¼ÊõͼÊé»ÕÕÂ
ÈÕÆÚ:2013-09-10 08:57:55
4Â¥ [±¨¸æ]
·¢±íÓÚ 2013-08-15 08:59 |Ö»¿´¸Ã×÷Õß
ºÁÃëÕâ¸öÊýÁ¿¼¶µÄ²âÁ¿Ò»°ã²»Ì«×¼¡£
ÄãÊÔÊÔ·Å´óһǧ±¶¿´¿´¡£

ÂÛ̳»ÕÕÂ:
0
5Â¥ [±¨¸æ]
·¢±íÓÚ 2013-08-16 16:07 |Ö»¿´¸Ã×÷Õß
»Ø¸´ 4# pprpg


    ÒѾ­ÊÇus¼¶µÄÁË ÎÒ»»Ëã³ÉÁËms

ÂÛ̳»ÕÕÂ:
1
¼¼ÊõͼÊé»ÕÕÂ
ÈÕÆÚ:2013-09-10 08:57:55
6Â¥ [±¨¸æ]
·¢±íÓÚ 2013-08-16 16:19 |Ö»¿´¸Ã×÷Õß
ÎÒ˵Êǵ½Ã뼶£¬»òÕß0.1Ã뼶¡£

ÂÛ̳»ÕÕÂ:
0
7Â¥ [±¨¸æ]
·¢±íÓÚ 2013-08-16 16:23 |Ö»¿´¸Ã×÷Õß
»Ø¸´ 6# pprpg


    ÄÇÑùÌ«²»¾«È·ÁË£¬²»ÄÜÂú×ãÒªÇó

ÂÛ̳»ÕÕÂ:
1
¼¼ÊõͼÊé»ÕÕÂ
ÈÕÆÚ:2013-09-10 08:57:55
8Â¥ [±¨¸æ]
·¢±íÓÚ 2013-08-17 10:01 |Ö»¿´¸Ã×÷Õß
ÄãÔÙд¸öone_sec()
¶à²â¼¸´Î£¬ÍêÈ«ÏàͬµÄº¯Êý£¬Ã¿´Î²âÁ¿³öµÄʱ¼ä¶¼²»Ì«Ò»Ñù¡£
¶àÈÎÎñ»·¾³Ï£¬²»¿ÉÄܾܺ«È·
ÄúÐèÒªµÇ¼ºó²Å¿ÉÒÔ»ØÌû µÇ¼ | ×¢²á

±¾°æ»ý·Ö¹æÔò ·¢±í»Ø¸´

  

±±¾©Ê¢ÍØÓÅѶÐÅÏ¢¼¼ÊõÓÐÏÞ¹«Ë¾. °æȨËùÓÐ ¾©ICP±¸16024965ºÅ-6 ±±¾©Êй«°²¾Öº£µí·Ö¾ÖÍø¼àÖÐÐı¸°¸±àºÅ£º11010802020122 niuxiaotong@pcpop.com 17352615567
δ³ÉÄê¾Ù±¨×¨Çø
Öйú»¥ÁªÍøЭ»á»áÔ±  ÁªÏµÎÒÃÇ£ºhuangweiwei@itpub.net
¸ÐлËùÓйØÐĺÍÖ§³Ö¹ýChinaUnixµÄÅóÓÑÃÇ ×ªÔر¾Õ¾ÄÚÈÝÇë×¢Ã÷Ô­×÷ÕßÃû¼°³ö´¦

Çå³ý Cookies - ChinaUnix - Archiver - WAP - TOP