大家讲讲时间戳的知识吧

[复制链接]
7836|16
 楼主| honglaisun 发表于 2011-8-23 09:40 | 显示全部楼层 |阅读模式
时间戳就是一个高精度的时钟吗?我对这个完全不了解,是不是可以代替系统中的实时时钟啊 等等 只要是关于时间戳的还请各位多说说这方面知识   万分感谢
香水城 发表于 2011-8-23 09:43 | 显示全部楼层
时间戳与邮局的邮戳是一个概念,不是什么高精度的时钟。
 楼主| honglaisun 发表于 2011-8-23 10:24 | 显示全部楼层
可是我在网上查了一些   确实有作为高精度定时用的啊
 楼主| honglaisun 发表于 2011-8-23 10:25 | 显示全部楼层
2# 香水城 可是我在网上查了一些   确实有作为高精度定时用的啊
原野之狼 发表于 2011-8-23 11:32 | 显示全部楼层
依据2楼香版意见即可
楼主可以把网上资料贴出来看看
icecut 发表于 2011-8-23 12:02 | 显示全部楼层
2# 香水城 可是我在网上查了一些   确实有作为高精度定时用的啊
honglaisun 发表于 2011-8-23 10:25


Linux的确是用这个做高精度时钟代替了rtc.
关机使用rtc,开机使用其他高精度时钟.

时间戳本来就应该高精度.没精度,还戳个屁啊....

老外的书有说的.名字忘记了.我是见过的
t.jm 发表于 2011-8-23 12:39 | 显示全部楼层
这个时间戳是不是就像电脑上的网上校时功能?
本机的RTC会有累积误差,网上校时虽然有传输延时却没有累积误差所以反而比本机RTC要准。
icecut 发表于 2011-8-23 13:20 | 显示全部楼层
时间戳与邮局的邮戳是一个概念,不是什么高精度的时钟。
香水城 发表于 2011-8-23 09:43

邮局的戳,只能戳明白你的信什么时候到哪
对于先处理的哪一封信,那个戳,戳不明白
原野之狼 发表于 2011-8-23 13:41 | 显示全部楼层
时间戳:time stamp
原来的邮戳也是一个time stamp.
此时间表明处理一件事情的时间,比如邮局的信件收发的时间,比如短消息服务的接受时间,比如因特网上传递的各种数据的时间标签...
可以认为这个时间是比较准确的,但是能不能用来作为时间的校准标准,还得看该信息的传递过程以及对校准的精度要求。
比如,有些设备用短信来校时,但是短信是会延迟的,延迟是不确定的,如果该延迟以及不确定可以接受,那么用它来校时当然可以。
比如,有些设备采用网络校时,网络也是有延迟的且不确定的,行不行看需求。
若要精确校时,那就用精确的方法,比如和授时中心同步,比如安放高精度原子钟,还用相对论修正,呃,扯远了。。。

评分

参与人数 1威望 +1 收起 理由
highgear + 1

查看全部评分

huanben 发表于 2011-8-23 15:38 | 显示全部楼层
没精度,还戳个屁啊....
:funk:真粗鲁
香水城 发表于 2011-8-23 15:48 | 显示全部楼层
现代的邮差跑的速度比较快,盖了戳(时间戳)之后立即就送到了目的地,收到信之后如果立即对时,可以做到较精确的时间基准,但前提条件是邮局的时钟精度要足够高,同时送信的速度要足够地快不能有任何耽搁。

在没有本地时钟,或本地时钟精度较低时,时间戳可以用来代替或替代一个高精度的时钟,但不是LZ说的“时间戳就是一个高精度的时钟”。
Windmill_CN 发表于 2011-8-23 17:59 | 显示全部楼层
视具体应用而定吧。
highgear 发表于 2011-8-23 23:24 | 显示全部楼层
time stamp 这是一个常用的术语,至少在俺们这里。

时间戳是一个广义时间标记,通常用来标识数据记录的时间,例如事件发生时刻,或是记录产生的时间。而time stamp 的形式多种多样,可以是ascii 形式的时间,也可以是 32bit的标准时间,或是16/32位的偏移量等等。比如记录波形,如果是固定时间短时记录,可以只用一个time stamp表示起始时间足矣;否则必须给每个采样时刻点打上一个时间戳
 楼主| honglaisun 发表于 2011-8-24 16:56 | 显示全部楼层
使用CPU时间戳进行高精度计时

对关注性能的程序开发人员而言,一个好的计时部件既是益友,也是良师。计时器既可以作为程序组件帮助程序员精确的控制程序进程,又是一件有力的调试武器,在有经验的程序员手里可以尽快的确定程序的性能瓶颈,或者对不同的算法作出有说服力的性能比较。
在Windows平台下,常用的计时器有两种,一种是timeGetTime多媒体计时器,它可以提供毫秒级的计时。但这个精度对很多应用场合而言还是太粗糙了。另一种是QueryPerformanceCount计数器,随系统的不同可以提供微秒级的计数。对于实时图形处理、多媒体数据流处理、或者实时系统构造的程序员,善用QueryPerformanceCount/QueryPerformanceFrequency是一项基本功。
本文要介绍的,是另一种直接利用Pentium CPU内部时间戳进行计时的高精度计时手段。以下讨论主要得益于《Windows图形编程》一书,第15页-17页,有兴趣的读者可以直接参考该书。关于RDTSC指令的详细讨论,可以参考Intel产品手册。本文仅仅作抛砖之用。

在Intel Pentium以上级别的CPU中,有一个称为“时间戳(Time Stamp)”的部件,它以64位无符号整型数的格式,记录了自CPU上电以来所经过的时钟周期数。由于目前的CPU主频都非常高,因此这个部件可以达到纳秒级的计时精度。这个精确性是上述两种方法所无法比拟的。
在Pentium以上的CPU中,提供了一条机器指令RDTSC(Read Time Stamp Counter)来读取这个时间戳的数字,并将其保存在EDX:EAX寄存器对中。由于EDX:EAX寄存器对恰好是Win32平台下C++语言保存函数返回值的寄存器,所以我们可以把这条指令看成是一个普通的函数调用。
 楼主| honglaisun 发表于 2011-8-24 16:57 | 显示全部楼层
上面是我在网上复制的一段
dengm 发表于 2011-8-24 17:20 | 显示全部楼层
Window NT 类 os,  没用的,  1ms 就差不多了.
 楼主| honglaisun 发表于 2011-8-25 10:52 | 显示全部楼层
Window NT 类 os,  没用的,  1ms 就差不多了.
dengm 发表于 2011-8-24 17:20

对  我就是想知道1ms时间戳是怎么用的,是像定时器一样吗还是什么,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

7

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部