• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
C++Q&A:性能监视
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
C++Q&A:性能监视
软件发布 C++Q&A:性能监视
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 认证考试 >> 系统工程师 >> C++Q&A:性能监视

C++Q&A:性能监视

添加时间: 2007-4-9 2:33:37  作者: 系统工程师认证参考  阅读次数:66   来源: http://www.d9soft.com

       

  我描述了一个称为 showtime 的类,你可以用它来为你的应用程序执行一些简单的性能监视。showtime 用它的构造函数/析构函数来记录它存在的开始/结束时间,因此你可以在代码块中这样来实例化:
      {        showtime st(_t("total time is:"));        // some lengthy operation      }  你便会获得 trace 消息或日志文件,它会记录这样一条日志:“共耗时是:nnn 毫秒”,这个nnn 是从实例在栈上创建开始之时到析构函数调用之时的毫秒数。
  showtime 使用了 crt::clock 函数以获得自从进程启动后的毫秒数。正如我指出的,对于精度计时来说,::clock 并不是最精确 的函数。我从没有建议过其它可使用的计时函数,因为当时::clock足以充分说明我所回答的问题。但是读者 robert bocquier 指出这里有一个更好的函数: timegettime。

 

 

figure 1 时间输出

  robert 说这是他编写音乐应用程序的经验:根据你运行的 windows® 平台/版本,::clock 的粒度可能会高达 10 毫秒 ;而 timegettime 更精确。perftest.cpp 是一个简单的程序,它可以从 msdn杂志代码中下载获得,它举例说明了这个问题(感谢robert提供了 此测试思路)。perftest 展示只要时间一改变,它便会显示一条消息,先用::clock,然后用 timegettime。正如你从 figure 1 中 所看到的范例输出那样,在我运行 windows xp 的机器上,::clock 的粒度为10毫秒;而 timegettime 的粒度为 1 毫秒。唯一的差别是你必须首先调用 timebeginperiod 来设置你所想要的粒度,并在结束时调用 timeendperiod。
        timebeginperiod(1);        // ... run performance testtimeendperiod(1);  每次调用 timebeginperiod 后都必须以相同的粒度值配对调用 timeendperiod。在我的机器上,粒度的默认值为10毫秒(和 ::clock 一样),所以如果 你不想出什么差错,最好不要忘记调用timebeginperiod。timexxx 函数是 windows 多媒体支持的一部分,因此你必须 #include mmsystem.h 并链接 winmm.lib 库。这里有一个技巧,你可以用它来告诉连接器从源代码模块中包含某个特定的库——而不是向工程设置中添加库。它就是 使用 #pragma 声明,像下面这样:
        // tell linker to use winmm.lib        #pragma comment( lib, "winmm" )  #pragma 声明有多种其有用的选项,你应该根据自己的情况选择使用;lib 选项填入一个库搜索记录到你的模块对象文件中。我写了一个新版本的 showtime,它使用 timegettime 和 pragma 来连接 winmm.lib。showtime 构造函数现在 有一个粒度参数,showtime 将该参数传递给 timebeginperiod (默认值=1)。(perftest 用 showtime 来测算分配 大批量字符串的时间。)

 

上下文章:

 

上一篇文章: 项目进度的黑洞——已完成90% 下一篇文章: C++Q&A:控件和组件概念浅析

相关文章:

  • ORACLE考试 Oracle8i : 性能及其调优 大纲
  • Oracle数据库性能保护(下)
  • Oracle性能调优:时间的有限和无限
  • ORACLE性能调优原则
  • ORACLE性能调优原则

相关软件:

  • NiceSPY系统监视专家 V3.0
  • 网络状况监视器(Netwatch) V6.0
  • 哑巴监视器 V3.0.2006
  • 文件监视小助手 1.8
  • 串口监视程序 V2.0 Build 0823
  • 海王星局域网客户机流量监视器 4.0

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

认证考试分类导航

  • 微软认证
  • 计算机等级考试
  • 软件水平考试
  • 思科认证
  • Oracle认证
  • Linux认证
  • JAVA认证
  • 网络工程师
  • 系统工程师
  • 程序员

本类经典文章推荐

  • SQLServer的安全检查
  • 系统设计师资格与水平考纲 (原高级...
  • 系统分析员备考之ISO9000系列基础...
  • 开发数据库的WEB查询
  • 在builder中向Excel传递数据
  • 用Powerbuilder开发WEB数据库
  • PowerBuilder制作IE风格的图标按钮
  • PowerBuilder编程技巧四则
  • 小议数据库主键选取策略
  • 跨数据库文献检索统一平台的实现

系统工程师阅读排行

  • 数据库原理各章节简答题总结
  • 利用C++Builder6.0开发简单的车辆...
  • 跨数据库文献检索统一平台的实现
  • 用Powerbuilder开发WEB数据库
  • 系统设计师资格与水平考纲 (原高级...
  • 项目进度的黑洞——已完成90%
  • 系统分析员备考之ISO9000系列基础...
  • 小议数据库主键选取策略
  • 数据库系统工程师全真预测试卷(一...
  • 2005年上半年数据库系统工程师上午...

认证考试阅读总排行

  • 全国计算机等级考试一级模拟试题01
  • 全国计算机等级考试一级模拟试题10
  • 全国计算机等级考试一级模拟试题08
  • MCSD简介
  • 全国计算机等级考试一级考试最新模...
  • 全国计算机等级考试一级模拟试题07
  • 全国计算机等级考试一级模拟试题02
  • 全国计算机等级考试一级模拟试题06
  • 全国计算机等级考试一级模拟试题03
  • 一级(WINDOWS)试题解析-Word篇

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有