中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

產(chǎn)品分類

當(dāng)前位置: 首頁(yè) > 傳感測(cè)量產(chǎn)品 > 工業(yè)傳感器 > 溫濕度傳感器

類型分類:
科普知識(shí)
數(shù)據(jù)分類:
溫濕度傳感器

ESM6802( iMX6-WEC7)多核性能測(cè)試

發(fā)布日期:2022-04-26 點(diǎn)擊率:104

  • 關(guān)鍵詞:                                                                ESM6802                                                                iMX6-WEC7

  • 摘要:WEC7一個(gè)最重要的特性就是對(duì)多核處理器的支持(Symmetric Multi-Processing(SMP)),下面將通過(guò)應(yīng)用程序來(lái)測(cè)試在單核和多核情況下系統(tǒng)的執(zhí)行情況,為了更直觀的比較,同時(shí)參與測(cè)試的還有ESM3354,ESM3354是基于TI Coertex-A8處理器的工控主板,CPU主頻1GHz,同樣預(yù)裝WEC7操作系統(tǒng)。


  ESM6802是英創(chuàng)公司推出的基于Freescale i.MX6DL雙核處理器(ARM Cortex-A9,主頻1GHz)的高性能工控主板,預(yù)裝正版Windows Embedded Compact 7(WEC7)嵌入式操作系統(tǒng),WEC7一個(gè)最重要的特性就是對(duì)多核處理器的支持(Symmetric Multi-Processing(SMP)),下面將通過(guò)應(yīng)用程序來(lái)測(cè)試在單核和多核情況下系統(tǒng)的執(zhí)行情況,為了更直觀的比較,同時(shí)參與測(cè)試的還有ESM3354,ESM3354是基于TI Coertex-A8處理器的工控主板,CPU主頻1GHz,同樣預(yù)裝WEC7操作系統(tǒng)。


  所設(shè)計(jì)的測(cè)試程序代碼如下,其中的TestSmp函數(shù)有兩個(gè)輸入?yún)?shù),第一參數(shù)表示要?jiǎng)?chuàng)建測(cè)試線程的數(shù)量,第二個(gè)參數(shù)為所創(chuàng)建線程的運(yùn)行時(shí)長(zhǎng)。cbTestSmp是被創(chuàng)建的測(cè)試線程,測(cè)試線程主要是在一個(gè)while循環(huán)中,反復(fù)讀取內(nèi)存變量然后與預(yù)設(shè)值進(jìn)行比較,在運(yùn)行設(shè)定的時(shí)間后自動(dòng)退出循環(huán),其中的threadParam->loops變量會(huì)記錄下while循環(huán)總共執(zhí)行的次數(shù)。


  typedef struct _SMP_THREAD_PARAM

  {

      UINT32 durationMs;

      UINT32 threadId;

      UINT64 loops;

      BOOL   bSetAffinity;

      UINT32 sandBoxSize;

      LPVOID sandBoxStart;

  }SMP_THREAD_PARAM, *PSMP_THREAD_PARAM;


  ULONG cbTestSmp(LPVOID param)

  {

      PSMP_THREAD_PARAM threadParam = (PSMP_THREAD_PARAM)param;

      DWORD tStart = GetTickCount();

      UINT8 *buffer = (UINT8 *)threadParam->sandBoxStart;


      wprintf(L"Ahou, Thread %d, running for %d ms ", threadParam->threadId,

           threadParam->durationMs);


      // Write to sandbox

      for (UINT32 i = 0; i < threadParam->sandBoxSize; i++)

      {

          buffer[i] = (UINT8)(i);

      }


      while ( (GetTickCount() - tStart) < threadParam->durationMs)

      {

          // Read back from sandbox

          for (UINT32 i = 0; i < threadParam->sandBoxSize; i++)

          {

              if (buffer[i] != (UINT8)(i))

              {

                  wprintf(L"Thread %d : error at byte %d for loop %I64d !! ",

                      threadParam->threadId, i, threadParam->loops);

              }          

          }      


          threadParam->loops++;

      }


      wprintf(L"Thread %d : terminating ", threadParam->threadId);

 

     return 0;

  }


  void TestSmp(UINT32 nNumOfThread, UINT32 durationMs)

  {

      UINT32 i;


      PSMP_THREAD_PARAM threadParams;

      HANDLE *threadHandles;

      UINT64 totalLoops = 0;

      UINT32 sandBoxSize = 1024 * 128; // 128 kB


      HANDLE h_array[1];


      threadParams = (PSMP_THREAD_PARAM)malloc(nNumOfThread * sizeof(SMP_THREAD_PARAM));


      if (threadParams == NULL)

      {

          wprintf(L"Failed allocating thread params ! ");

          return;

      }


      threadHandles = (HANDLE *)malloc(nNumOfThread * sizeof(HANDLE));


     if (threadHandles == NULL)

      {

          wprintf(L"Failed allocating thread handles ! ");

          return;

      }


      for (i = 0; i < nNumOfThread; i++)

      {

          threadParams[i].bSetAffinity = TRUE;

          threadParams[i].threadId = i;

          threadParams[i].durationMs = durationMs;

          threadParams[i].loops = 0;

          threadParams[i].sandBoxSize = sandBoxSize;

          threadParams[i].sandBoxStart = malloc(sandBoxSize);

          threadHandles[i] = CreateThread(NULL, 0, cbTestSmp, &threadParams[i], 0, NULL);

          wprintf(L"Thread handle %d : 0x%x ", i, threadHandles[i]);

      }


      h_array[0] = threadHandles[0];

      DWORD res = WaitForSingleObject(h_array[0], INFINITE);


      Sleep(500);


      if (res == WAIT_TIMEOUT)

      {

          wprintf(L"Timeout waiting for threads ! ");

      }

      else

      {

          wprintf(L"All threads exited ");

      }


      for (i = 0; i < nNumOfThread; i++)

      {

         wprintf(L"Thread %d did run %I64d loops ", i, threadParams[i].loops);

          totalLoops += threadParams[i].loops;

          free(threadParams[i].sandBoxStart);

          CloseHandle(threadHandles[i]);

      }


      wprintf(L"Total number of loops %I64d (%I64d millions) ", totalLoops,

          totalLoops / 1000000);


      free(threadHandles);

      free(threadParams);

  }


  將上述測(cè)試代碼編譯生成為exe文件,分別在ESM3354和ESM6802上運(yùn)行,設(shè)置while循環(huán)的執(zhí)行時(shí)間均為10000ms,測(cè)試結(jié)果如下:


1、創(chuàng)建單個(gè)線程


測(cè)試主板與線程ESM3354(1GHz單核 Cortex-A8)ESM6802(1GHz雙核Cortex-A9)

 循環(huán)次數(shù)67917493


  當(dāng)測(cè)試程序只創(chuàng)建一個(gè)測(cè)試線程時(shí),ESM3354的while循環(huán)執(zhí)行了6791次,ESM6802執(zhí)行7493次,雖然ESM6802為雙核處理器,但由于程序只有一個(gè)線程,即同一時(shí)刻只有一個(gè)線程在運(yùn)行,所以在相同的時(shí)間內(nèi),循環(huán)的次數(shù)僅略多于ESM3354。由于ESM3354和ESM6802的CPU主頻同樣都是1GHz,所以可以認(rèn)為ESM6802多出的循環(huán)次數(shù)也就是Cortex-A8與Cortex-A9在代碼執(zhí)行效率上的差別。


2、創(chuàng)建兩個(gè)線程


測(cè)試主板與線程ESM3354(1GHz單核 Cortex-A8)ESM6802(1GHz雙核Cortex-A9)

 線程1循環(huán)次數(shù)33907438

 線程2循環(huán)次數(shù)34427452

 總循環(huán)次數(shù)683214890


  當(dāng)測(cè)試程序創(chuàng)建了兩個(gè)線程時(shí),ESM3354會(huì)將CPU資源大約平均的分配給兩個(gè)線程,如上表中線程1執(zhí)行了3390次,線程2執(zhí)行了3442次,兩個(gè)線程總共執(zhí)行的次數(shù)與只創(chuàng)建單個(gè)線程測(cè)試時(shí)的循環(huán)次數(shù)相當(dāng)。ESM6802為雙核CPU,在測(cè)試程序有兩個(gè)線程的情況下,在同一時(shí)刻兩個(gè)線程可以同時(shí)運(yùn)行,所以總的循環(huán)次數(shù)大約是單個(gè)線程測(cè)試時(shí)的兩倍。


  通過(guò)上面的測(cè)試可以看到,在多線程情況下,如果操作系統(tǒng)支持多核處理器,那么雙核CPU的運(yùn)算能力將是單核CPU的兩倍。


下一篇: PLC、DCS、FCS三大控

上一篇: 索爾維全系列Solef?PV

推薦產(chǎn)品

更多
中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

      麻豆精品精品国产自在97香蕉| 欧美精品日韩| 亚洲午夜影视影院在线观看| 国产在线精品成人一区二区三区 | 亚洲国产成人av| 国产伦精品一区二区三区四区免费 | 中文国产成人精品| 亚洲黄色成人网| 激情六月婷婷久久| 国产精品亚洲综合天堂夜夜 | 欧美午夜剧场| 欧美理论片在线观看| 美国十次成人| 久久久久久久久综合| 午夜精品在线观看| 亚洲影院在线| 亚洲一二三区在线| 宅男噜噜噜66一区二区66| 亚洲精品视频在线观看网站| 在线播放豆国产99亚洲| 国模叶桐国产精品一区| 国产农村妇女毛片精品久久麻豆| 欧美视频在线视频| 欧美日韩情趣电影| 欧美日韩日日骚| 欧美日韩国产91| 欧美日韩国产在线播放| 欧美成人自拍| 欧美精品国产精品| 欧美福利精品| 欧美久久在线| 欧美日韩国产免费观看| 欧美全黄视频| 欧美视频在线观看| 国产精品毛片a∨一区二区三区|国 | 日韩视频在线观看| 99在线|亚洲一区二区| 99re6热只有精品免费观看| 99精品国产福利在线观看免费 | 久久精品1区| 久久综合伊人77777尤物| 免费观看一级特黄欧美大片| 免费日韩成人| 欧美日韩91| 国产精品福利在线| 国产精品视频导航| 国产午夜精品久久久| 国内精品99| 亚洲黄色大片| 99国产精品国产精品久久| 一本大道久久a久久精二百| 亚洲图片激情小说| 午夜精品区一区二区三| 久久久久在线观看| 欧美福利一区二区三区| 欧美亚洲第一页| 国产丝袜一区二区| 在线观看中文字幕亚洲| 一本色道久久综合| 久久精品九九| 欧美久久视频| 国产日韩精品一区二区三区| 在线观看欧美成人| 中文国产一区| 久久天天综合| 欧美三级日韩三级国产三级| 国产人久久人人人人爽| 亚洲国产欧美国产综合一区| 这里只有精品在线播放| 久久久免费精品视频| 欧美日韩视频一区二区| 国产深夜精品福利| 最新亚洲激情| 久久av在线| 欧美日韩一区在线视频| 伊人久久大香线| 亚洲香蕉网站| 欧美成人午夜免费视在线看片| 国产精品拍天天在线| 亚洲黄色影院| 久久精品国产精品| 欧美色视频在线| 在线播放不卡| 午夜久久黄色| 欧美日韩在线观看视频| 国产一区二区视频在线观看| 99国产精品视频免费观看| 久久久人成影片一区二区三区| 欧美日韩亚洲综合一区| 亚洲国产成人porn| 欧美一二三视频| 欧美日韩一区二区视频在线 | 欧美日韩在线播放三区四区| 狠久久av成人天堂| 午夜精品久久久久久久久| 欧美精品精品一区| 激情视频亚洲| 欧美在线free| 国产精品美女久久久久久久| 日韩视频在线观看免费| 欧美~级网站不卡| 精品动漫3d一区二区三区免费版 | 欧美va亚洲va香蕉在线| 国产午夜精品麻豆| 亚洲欧美日韩综合| 国产精品二区二区三区| 亚洲精品视频在线观看免费| 免费影视亚洲| 亚洲高清成人| 免费看亚洲片| 在线看视频不卡| 久久久亚洲国产美女国产盗摄| 国产欧美日韩在线| 午夜精品999| 国产欧美视频在线观看| 亚洲欧美日韩成人高清在线一区| 国产精品www.| 亚洲女女女同性video| 国产精品久久久一本精品| 亚洲午夜精品17c| 国产精品草莓在线免费观看| 一区二区三区三区在线| 欧美日本久久| 亚洲天堂av综合网| 欧美亚洲不卡| 性欧美长视频| 国产一区二区三区精品久久久| 久久9热精品视频| 国产一区999| 久久三级视频| 亚洲韩国精品一区| 欧美精品自拍偷拍动漫精品| 一本色道久久88综合亚洲精品ⅰ| 欧美日韩影院| 欧美在线3区| 狠狠色综合日日| 蜜臀av一级做a爰片久久| 亚洲精品久久久久久久久久久久 | 午夜视黄欧洲亚洲| 国产一区香蕉久久| 欧美99久久| 一个人看的www久久| 国产精品亚洲网站| 久久蜜桃香蕉精品一区二区三区| 亚洲福利精品| 欧美日韩在线观看一区二区三区| 亚洲色图自拍| 国语自产精品视频在线看| 美女性感视频久久久| 99riav1国产精品视频| 国产精品嫩草99av在线| 久久国产精品久久精品国产| 亚洲东热激情| 欧美性片在线观看| 久久精品国产亚洲一区二区三区| 亚洲国产精品123| 国产精品久久久对白| 久久久久久久久久久成人| 亚洲精品一二| 国产精品一国产精品k频道56| 久久免费视频在线观看| 一本久道久久综合婷婷鲸鱼| 国产热re99久久6国产精品| 蜜臀久久99精品久久久画质超高清| 99视频精品全部免费在线| 国产欧美日韩不卡| 欧美精品一区二区三区一线天视频| 午夜精品影院| 日韩一级大片| 激情综合色综合久久| 国产精品久久久久久亚洲毛片| 久久精品最新地址| 亚洲天堂网在线观看| 欲色影视综合吧| 国产精品伦子伦免费视频| 欧美成人免费va影院高清| 欧美一区成人| 日韩亚洲欧美中文三级| 国产一区视频观看| 欧美午夜不卡在线观看免费| 农夫在线精品视频免费观看| 午夜精品福利在线观看| 亚洲精品少妇网址| 一区二区三区在线高清| 国产精品亚洲产品| 欧美欧美天天天天操| 久久伊人亚洲| 欧美在线观看你懂的| 亚洲一区三区视频在线观看| 亚洲日本激情| 亚洲成色最大综合在线| 国产欧美视频一区二区| 国产精品v亚洲精品v日韩精品| 欧美国产综合视频| 美女视频一区免费观看| 欧美一区二区女人| 午夜精品久久久久久久久久久久久| 亚洲麻豆国产自偷在线| 激情视频一区二区| 国产中文一区二区|