C#测量程序运行时间及cpu使用时间(转)

   对一个服务器程序想统计每秒可以处理多少数据包,要如何做?答案是用处理数据包的总数,除以累记处理数据包用的时间。这里要指出的是, 运行一段程序,使用的cpu时间,跟实际运行的时间是不一样的。附例如下:
    

  1. private void ShowRunTime()
  2. {
  3.              TimeSpan ts1 = Process.GetCurrentProcess().TotalProcessorTime;
  4.              Stopwatch stw = new Stopwatch();
  5.              stw.Start();
  6.              int Circles = 1000;
  7.              for (int i = 0; i < Circles; ++i)
  8.              {
  9.                  Console.WriteLine(i.ToString());
  10.              }
  11.              double Msecs = Process.GetCurrentProcess().TotalProcessorTime.Subtract(ts1).TotalMilliseconds;
  12.              stw.Stop();
  13.              Console.WriteLine(string.Format("循环次数:{0} CPU时间(毫秒)={1} 实际时间(毫秒)={2}", Circles, Msecs, stw.Elapsed.TotalMilliseconds, stw.ElapsedTicks));
  14.              Console.WriteLine(string.Format("1 tick = {0}毫秒", stw.Elapsed.TotalMilliseconds / stw.Elapsed.Ticks));


     程序输出如下:

     循环次数:1000 CPU时间(毫秒)=50.072 实际时间(毫秒)=666.9071
     1 tick = 0.0001毫秒

     可以看出在这个例子中,两者差距比较大,其原因如下:

     1)Windows是多任务操作系统,按照线程为单位对cpu时间轮询分配。即一个程序运行的中途,可能被剥夺cpu资源,供其他程序运行。

     2)程序本身会有不占用cpu时间的等待过程。这个等待可能是我们程序主动的,比如启动一个进程,然后等待进程的结束;也可能是我们没有意识到的,如例子 的Console.WriteLine方法,猜想其内部进行了一系列的异步I/O操作然后等待操作的完成,这其间并没有占用调用进程的cpu时间,但耗费 了很多等待时间。

     总结:

     1)性能的测量,应该用程序运行时间来测量,当然也需要使用cpu时间作为参考,如果两者差距很大,需要考虑为何出现这种情况。

     2).Net的Stopwatch类可以精确到1/10000毫秒,基本可以满足测量精度。

转载于:https://www.cnblogs.com/yanpeng/archive/2008/10/15/1943369.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

序列图

序列图主要用于按照交互发生的一系列顺序&#xff0c;显示对象之间的这些交互。很象类图&#xff0c;开发者一般认为序列图只对他们有意义。然而&#xff0c;一个组织的业务人员会发现&#xff0c;序列图显示不同的业务对象如何交互&#xff0c;对于交流当前业务如何进行很有用…

NoSQLBooster for MongoDB默认显示100条数据

顶部Options设置——Modify Default Code Templates——Modify Default Limit Size&#xff0c; 即可修改显示条数。 转载于:https://www.cnblogs.com/zjx1/p/11491338.html

项目总结(采用领域驱动开发方式)

最近在做一个项目。采用J2EE作为开发平台&#xff0c;通过领域驱动开发&#xff08;DDD&#xff09;的方式进行开发。首先说一下系统总体架构。系统分为表现层&#xff0c;业务层(业务层分为应用层和领域层)&#xff0c;持久层&#xff0c;其中表现层用Struts MVC框架&#xff…

MS SQL Server 2008 简体中文正式版下载地址(附序列号)

Microsoft SQL Server 2008 Enterprise Evaluation&#xff1a;开发人员试用体验http://www.microsoft.com/downloads/details.aspx?FamilyId6B10C7C1-4F97-42C4-9362-58D4D088CD38&displaylangzh-cn Microsoft SQL Server 2008 Enterprise Evaluation&#xff1a;IT 专业…

小型网络的组建及排错

今天施工 给公司组建了一小型网络 以下是此次施工的拓扑图具体的实施方法不再啰嗦&#xff0c;在此要声明配线架只是起到了方便管理的作用&#xff0c;实施过程中也可以不用到配线架。 房间1又通过一HUB共享上网&#xff0c;房间2有两个客户端&#xff0c;直接连接到2924交换机…

大道五目Flash英文版(Renju Problems)程序分析之禁手判断

现在界面已经完成了&#xff0c; 刚刚完成了禁手算法&#xff0c;把代码共享出来&#xff1a; Codeprivate function IsForbidden(x:int, y:int, board:Array):int { var index:int x*15y; // set this position(x,y) to black. …

Google Earth的十个常用技巧应用

2004年10月27日Google宣布收购了美国的一家卫星图像公司Keyhole公司&#xff0c;并于2005年6月推出了Google Earth系列软件。用户们可以通过下载一个Google Earth客户端软件&#xff0c;就可以免费浏览全球各地的高清晰度卫星图片。 Google卫星地图的横空出世&#xff0c;催生了…

[导入]判断学号前十位的年龄最大的女学生是否是汉族的

USE XSCJGOIF object_id(tempdb..#tmpTable) IS NOT NULLDROP TABLE #tmpTableSELECT TOP 10 *INTO #tmpTableFROM 学生基本信息表WHERE 性别 女GODECLARE zbs CHAR(10)SELECT zbs 族别 FROM #tmpTableWHERE 出生日期 (SELECT MIN(出生日期) FROM #tmpTable)IF zbs 汉族PRI…

TCP/IP协议端口大全

TCP/IP协议端口大全 应用层网关服务Internet 连接共享 (ICS)/Internet 连接防火墙 (ICF) 服务的这个子组件对允许网络协议通过防火墙并在 Internet 连接共享后面工作的插件提供支持。应用层网关 (ALG) 插件可以打开端口和更改嵌入在数据包内的数据&#xff08;如端口和 IP 地址…

BENET上海分公司网络改造项目设计实施方案(S1项目实践)

BENET上海分公司网络改造项目设计实施方案 目录 目录- - 1 - 一、企业用户需求分析- - 2 - 1.1、项目概述-- - 2 - 1.2、系统需求概括-- - 3 - 1.3、项目建设的要求-- - 4 - 二、项目方案的整体设计与实施- - 5 - 2.1、网络系统的分析与设计-- - 5 - 2.2、系统及应用服务的分析…

java 的转义字符,在正则表达式中应用

点的转义&#xff1a;. > u002E 美元符号的转义&#xff1a;$ > u0024 乘方符号的转义&#xff1a;^ > u005E 左大括号的转义&#xff1a;{ > u007B 左方括号的转义&#xff1a;[ > u005B 左圆括号的转义&#xff1a;( > u0028 竖线的转义&#xff1a;…

Oracle 统计信息备份/表分析

众所周知,统计信息直接影响到Oracle优化器最后的执行计划,所以定期收集统计信息成为DBA一项常规的工作,但是,对于一些大表,比如数据量超过几千万条,表分析后却有可能会导致应用系统一些SQL执行计划变差,比如出现大量的全表扫,严重影响数据库性能.如果出现这种情况,一种方法是对…

Type mismatch: cannot convert from int to Object错误

第一, 需要装 jre1.5.0及以上的版本第二, 在eclipse的Window Preference Java里,Install JREs里设置你装的jre第三,在eclipse的Window Preference Java里,Compiler里设Compiler compliance level为5.0以上关键是第三步, 兼容级别转载于:https://blog.51cto.com/xu20cn/116852

IIS6.0应用程序池回收和工作进程【转:http://www.cnblogs.com/freshman0216/archive/2008/06/02/1212460.html】...

公司的一个网站程序长时间运行后&#xff0c;速度变慢&#xff0c;重新启动网站后速度明显变快&#xff0c;估计是网站程序占用的内存和CPU资源没能及时释放&#xff0c;才需要每隔一段时间重启网站释放资源。但手工重启总不能算解决问题的方法&#xff0c;怎样才能实现自动管理…

配置IPsec on GRE Tunnel with IOS Firewall and NAT

配置IPsec on GRE Tunnel with IOS Firewall and NAT<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />详细配置见附件

广播地址详谈!

一、问题的提出大家看到这个标题&#xff0c;一定会觉得非常简单&#xff0c;不错&#xff0c;对于高手们来说&#xff0c;这确实不值一提&#xff0c;但是&#xff0c;对于广大非高手的兄弟&#xff0c;还是有必要了解一下。以前&#xff0c;我对广播地址的认识也是模模糊糊&a…

SearchRequest用于与搜索文档、聚合、定制查询有关的任何操作

SearchRequest用于与搜索文档、聚合、定制查询有关的任何操作&#xff0c;还提供了在查询结果的基于上&#xff0c;对于匹配的关键词进行突出显示的方法。 1&#xff0c;首先创建搜索请求对象&#xff1a;SearchRequest searchRequest new SearchRequest(); 2&#xff0c;对搜…

截网页全屏图的方法-截网页全屏软件-Web2Pic Pro

抓取整个网页的最强工具:Web2Pic Pro http://www.pconline.com.cn/pcedu/tuijian/photo/snap/0507/acc/w2psetup.exe 使用方法你到下面的地址: http://www.pconline.com.cn/pcedu/tuijian/photo/snap/0507/675763.html 在上网过程中我们经常会抓取保存一些网页内容为图像格式…

ES Search API

Search API 搜索请求 SearchRequest用于与搜索文档、聚合、suggestions相关的任何操作&#xff0c;还提供了在结果文档上请求高亮的方法。 在最基本的表单中&#xff0c;我们可以向请求添加查询&#xff1a; SearchRequest searchRequest new SearchRequest(); SearchSourceB…

silverlight 跨域socket

http://msdn.microsoft.com/en-us/library/cc645032(VS.95).aspx一切都是临时的&#xff0c;beta2相对于beta1改了很多&#xff0c;不知道正式发布时是否还会改变。翻译的作用是备忘。Silverlight 2 beta 支持2种访问远程服务器的方式&#xff1a;System.Net命名空间中的WebCli…