文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网站建设经验技巧获取高精度的时间差,可以用来分析页面运行时间的长短
精品推荐
特别推荐
·最受欢迎的网管工具集
·ADSL登录是错误,出现691是什么意思
·网站建设中的常用代码
·Web搜索引擎设计和实现分析
·网页心得:网页色彩的搭配
·网页颜色搭配的技巧
·网站上传方法汇总
·最大限度优化博客文章
·基本的页面设计元素布局比例
·网站策划书实例
·应用网页标准制作网站的几点好处
·网页设计心得:页面布局的简单规则
·注意:网页标题和网页Meta的写法
·网管员在日常维护局域网时的几点注意事项
·常用网页使用js技巧收集(200多个)
·WEB开发碰到的问题及经验十八则
·网页设计文字大小相关的四种设置方法
·怎样制作网页?
·谈论做网站的理念与技术
·“口碑营销”的关键问题是在效率
热点TOP10
·最受欢迎的网管工具集
·知道对方的ip地址,如何查具体物理地址?
·怎样制作网页?
·轻松去除视频中自动弹出网页
·网页设计心得:页面布局的简单规则
·网管员在日常维护局域网时的几点注意事项
·制作网站的步骤和方法
·鼠标悬停显示标题等效果 JS+CSS
·EditPlus使用指南
·网页摹仿和抄袭的心得论
·电子杂志设计制作中的新技术整合运用
·网页制作,改变你的思维方式
·首页设计所应该达到的几个设计
·谈谈网页制作之网页布局
·网页登录界面设计需要注意的几个问题
·从交互设计的角度说用户登录
·太创意了!让人称绝的404错误页面
·网站的设计思考
·PHP环境配置介绍
·详解网站建设全过程(网络创业必读)

获取高精度的时间差,可以用来分析页面运行时间的长短

日期:2005年10月31日 作者: 查看:[大字体 中字体 小字体]


DateTime.Now的精度是很低,这个低的意思是,两次获取的DateTime.Now的Ticks的差,只是一个较大数的整数倍。例如在我的机器上,这个差最小是10.114ms。所以,如果我用DateTime.Now来计算时间差,那么就无法精确到10ms以内。

后来发现ASP.NET的TRACE的精度很高,用Reflector看它的实现,发现了它是使用这两个方法的:

参考MSDN:How To: Time Managed Code Using QueryPerformanceCounter and QueryPerformanceFrequency

我自己了按照这个写了个类,代码如下

using System;
using System.Runtime.InteropServices;
public class A
{
[DllImport("kernel32.dll")]
static extern bool QueryPerformanceCounter([In, Out] ref long lpPerformanceCount);
[DllImport("kernel32.dll")]
static extern bool QueryPerformanceFrequency([In, Out] ref long lpFrequency);

static long _f = 0;

static public long GetTickCount()
{
long f = _f;

if (f == 0)
{
if (QueryPerformanceFrequency(ref f))
{
_f = f;
}
else
{
_f = -1;
}
}
if (f == -1)
{
return Environment.TickCount * 10000;
}
long c = 0;
QueryPerformanceCounter(ref c);
return (long)(((double)c) * 1000 * 10000 / ((double)f));
}

//GetTickCount()为0时的DateTime.Ticks值
static long _tc = 0;

//这个返回的不是真正的精确时间,但时间与时间的差是精确的。
//GetExactNow与DateTime.Now的偏差比DateTime.Now的精度还要小,所以该偏差
static public DateTime GetExactNow()
{
if (_tc == 0)
{
long tc = GetTickCount();
DateTime dt = DateTime.Now;
_tc = dt.Ticks - tc;
return dt;
}

return new DateTime(_tc + GetTickCount());
}
}


在ASP。NET的应用,可以在Global.asax的Application_BeginRequest事件中加入代码来纪录程序开始时的TickCount:

Context.Items["BeginRequestTickCount"]=A.GetTickCount();


然后在页面输出的后面:

<html>....
<div align="center">
<%=new TimeSpan(A.GetTickCount()-(long)Context.Items["BeginRequestTickCount"]).TotalMilliseconds%>
</div>
</body></html>


这样就可以达到获取页面运行时间值了。(当然输出TotalMilliseconds后Asp.Net还要一些后期工作的,不过这个时间应该只需要0.n ms)

(出处:清风网络学院






上一篇:网站优化的几个重点

下一篇:2004年十大网络应用漏洞

获取高精度的时间差,可以用来分析页面运行时间的长短 相关文章:
·不用重装XP系统就可以解决全部故障
·配置Catalyst交换端口分析器(SPAN)
·一次入侵过程的公开分析
·可以胜任任何一家网吧技术主管的绝招
·万能五笔2001注册码分析及暴力破解 上
·不可以不看的一些网站
·新收集200多种美化QQ空间的透明Flash
·BT下载速度变慢原因解读及应对方法分析
·统计分析Web服务器日志
·突破网盘限制 两招获取Fs2You真实地址
获取高精度的时间差,可以用来分析页面运行时间的长短 相关软件:
·google卫星地图,可以看见你家晒的衣服,免费送给大家
·属相分析大师 V1.0
·金融炼金术:证券分析的逻辑
·2006年考前冲刺预测试卷《案例分析》2
·某建设监理工程师案例分析讲座08
·建设部监理师-案例分析录音16
·建设部监理师-案例分析录音15
·2001年监理执业资格考试案例分析试题
·ACCA若干问题分析
·ACCA CAT 3.5的战略相关分析(FROM PWC)

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot