首页产品库评测行情新闻|手机数码笔记本台式机DIY硬件数字家庭数码相机办公外设|软件下载游戏开发|社区

更多

数码相机
MP4
LCD
机箱
音箱

天极网 > 开发频道>编程实现测试CPU的速度

编程实现测试CPU的速度

2001-10-17 17:40作者:bull77出处:yesky责任编辑:方舟


  CPU的速度随温度和电压的变化而变化,如何随时查看CPU的速度?下面我们通过编程实现。在这个过程中,要用到汇编语言的知识。

  第一步:生成一个基于对话框的工程CPUSpeed。其他选项我们可以都取其默认值。

  第二步:在对话框上添加一个按钮,名称为"测试CPU速度",双击此按钮生成此按钮的处理函数,OnButton1。

  第三步:在CPUSpeedDlg.cpp文件中定义类Ctime,在OnButton1中添加处理代码,最后文件CPUSpeedDlg.cpp变成如下:

// CPUSpeedDlg.cpp : implementation file
//
#include "stdafx.h"
#include "CPUSpeed.h"
#include "CPUSpeedDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

///////////////////////////////////////////////
// CAboutDlg dialog used for App About
inline unsigned __int64 theCycleCount(void)
{

 _asm _emit 0x0F
 _asm _emit 0x31

 /// this causes a compiler warning as there is no return statement
 /// however the _emits return a __int64 value
}

class CTimer
{
 unsigned __int64 m_start;

 public:

  unsigned __int64 m_overhead;

 CTimer(void)
 {
  m_overhead = 0;
  Start(); /// we get the start cycle
  m_overhead = Stop();
  // then we get the stop cycle catching the overhead time
 }

 void Start(void)
 {
  m_start = theCycleCount();
 }

 unsigned __int64 Stop(void)
 {
  /// with the stop cycle we remove the overhead's time
  return theCycleCount()-m_start-m_overhead;
 }
};

void CCPUSpeedDlg::OnButton1()
{
 // TODO: Add your control notification handler code here
 CString strRawClockFrequency;
 
 CTimer timer;

 long tickslong;
 long tickslongextra;
 timer.Start();
 Sleep(1000);
 unsigned cpuspeed100 = (unsigned)(timer.Stop()/10000);


 tickslong = cpuspeed100/100;
 tickslongextra = cpuspeed100-(tickslong*100);
 strRawClockFrequency.Format("%d.%d MHZ estimate ", tickslong,tickslongextra );
 AfxMessageBox("CPU速度为"+strRawClockFrequency);
 }
 class CAboutDlg : public CDialog
 {
 ……以下为编程环境生成时自动生成的代码。

  好了,现在点击按钮"测试CPU速度"就可以弹出对话框告诉我们CPU的速度了。


关注此文的读者还看过:

返回开发频道首页

共1页。 1
  • 1.编程实现测试CPU的速度

软件频道最新更新

热点推荐

天极服务|关于我们|About us|网站律师|RSS订阅|友情合作|加入我们|天极动态|网站地图|意见反馈|MSN/QQ上看天极
Copyright (C) 1999-2012 Yesky.com, All Rights Reserved 版权所有 天极网络