买电脑就那这个试试

  1 // ConsoleApplication.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
  2 //
  3 //#include "StdAfx.h"
  4 #include "windows.h"
  5 #include "iostream"
  6 #include "string"
  7 #include<iostream>
  8 #include<cstdlib>
  9 #include<ctime>
 10 using namespace std;
 11 
 12 //用来存储信息
 13 DWORD deax;
 14 DWORD debx;
 15 DWORD decx;
 16 DWORD dedx;
 17 
 18 void ExeCPUID(DWORD veax)//初始化CPU
 19 {
 20     __asm
 21     {
 22         mov eax, veax
 23         cpuid
 24         mov deax, eax
 25         mov debx, ebx
 26         mov decx, ecx
 27         mov dedx, edx
 28     }
 29 }
 30 
 31 long GetCPUFreq()//获取CPU频率,单位: MHZ
 32 {
 33     int start1, start2;
 34     _asm rdtsc
 35     _asm mov start1, eax
 36     Sleep(50);
 37     _asm rdtsc
 38     _asm mov start2, eax
 39     return ((start2 - start1) / 50) / (1024);
 40 }
 41 
 42 string GetManID()//获取制造商信息
 43 {
 44     char ID[25];//存储制造商信息
 45     memset(ID, 0, sizeof(ID));//先清空数组 ID
 46     ExeCPUID(0);//初始化
 47     memcpy(ID + 0, &debx, 4);//制造商信息前四个字符复制到数组
 48     memcpy(ID + 4, &dedx, 4);//中间四个
 49     memcpy(ID + 8, &decx, 4);//最后四个
 50     //如果返回 char * ,会出现乱码;故返回 string 值
 51     return string(ID);
 52 }
 53 
 54 string GetCPUType()
 55 {
 56     const DWORD id = 0x80000002; //从0x80000002开始,到0x80000004结束
 57     char CPUType[49];//用来存储CPU型号信息
 58     memset(CPUType, 0, sizeof(CPUType));//初始化数组
 59 
 60     for (DWORD t = 0; t < 3; t++)
 61     {
 62         ExeCPUID(id + t);
 63         //每次循环结束,保存信息到数组
 64         memcpy(CPUType + 16 * t + 0, &deax, 4);
 65         memcpy(CPUType + 16 * t + 4, &debx, 4);
 66         memcpy(CPUType + 16 * t + 8, &decx, 4);
 67         memcpy(CPUType + 16 * t + 12, &dedx, 4);
 68     }
 69 
 70     return string(CPUType);
 71 }
 72 
 73 int main()
 74 {
 75     cout << "正在计算1e6*1e4次……" << endl;
 76     clock_t start, end;
 77     start = clock();        //程序开始计时
 78     int ans = 0;
 79     for (int i = 1; i <= 1e6; i++)
 80     {
 81         ans++;
 82         for (int j = 0; j <= 1e4; j++)
 83         {
 84             ans++;
 85         }
 86     }
 87     end = clock();        //程序结束用时
 88     double endtime = (double)(end - start) / CLOCKS_PER_SEC;
 89     cout << "Total time:" << endtime << "" << endl;        //s为单位
 90     cout << "Total time:" << endtime * 1000 << "毫秒" << endl;    //ms为单位
 91 
 92     cout << "本机CPU信息如下:" << endl;
 93     cout << "CPU 主 频: " << GetCPUFreq() << " MHZ" << endl;
 94     cout << "CPU 制造商: " << GetManID() << endl;
 95     cout << "CPU 型 号: " << GetCPUType() << endl;
 96     system("pause");
 97     return 0;
 98 
 99 
100 }

 

posted @ 2020-04-29 10:24  老婆饼里有老婆  阅读(187)  评论(0编辑  收藏  举报