打印

大家讲讲时间戳的知识吧

[复制链接]
6072|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# 香水城 可是我在网上查了一些   确实有作为高精度定时用的啊

使用特权

评论回复
5
原野之狼| | 2011-8-23 11:32 | 只看该作者
依据2楼香版意见即可
楼主可以把网上资料贴出来看看

使用特权

评论回复
6
icecut| | 2011-8-23 12:02 | 只看该作者
2# 香水城 可是我在网上查了一些   确实有作为高精度定时用的啊
honglaisun 发表于 2011-8-23 10:25


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

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

老外的书有说的.名字忘记了.我是见过的

使用特权

评论回复
7
t.jm| | 2011-8-23 12:39 | 只看该作者
这个时间戳是不是就像电脑上的网上校时功能?
本机的RTC会有累积误差,网上校时虽然有传输延时却没有累积误差所以反而比本机RTC要准。

使用特权

评论回复
8
icecut| | 2011-8-23 13:20 | 只看该作者
时间戳与邮局的邮戳是一个概念,不是什么高精度的时钟。
香水城 发表于 2011-8-23 09:43

邮局的戳,只能戳明白你的信什么时候到哪
对于先处理的哪一封信,那个戳,戳不明白

使用特权

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

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
highgear + 1
10
huanben| | 2011-8-23 15:38 | 只看该作者
没精度,还戳个屁啊....
:funk:真粗鲁

使用特权

评论回复
11
香水城| | 2011-8-23 15:48 | 只看该作者
现代的邮差跑的速度比较快,盖了戳(时间戳)之后立即就送到了目的地,收到信之后如果立即对时,可以做到较精确的时间基准,但前提条件是邮局的时钟精度要足够高,同时送信的速度要足够地快不能有任何耽搁。

在没有本地时钟,或本地时钟精度较低时,时间戳可以用来代替或替代一个高精度的时钟,但不是LZ说的“时间戳就是一个高精度的时钟”。

使用特权

评论回复
12
Windmill_CN| | 2011-8-23 17:59 | 只看该作者
视具体应用而定吧。

使用特权

评论回复
13
highgear| | 2011-8-23 23:24 | 只看该作者
time stamp 这是一个常用的术语,至少在俺们这里。

时间戳是一个广义时间标记,通常用来标识数据记录的时间,例如事件发生时刻,或是记录产生的时间。而time stamp 的形式多种多样,可以是ascii 形式的时间,也可以是 32bit的标准时间,或是16/32位的偏移量等等。比如记录波形,如果是固定时间短时记录,可以只用一个time stamp表示起始时间足矣;否则必须给每个采样时刻点打上一个时间戳

使用特权

评论回复
14
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++语言保存函数返回值的寄存器,所以我们可以把这条指令看成是一个普通的函数调用。

使用特权

评论回复
15
honglaisun|  楼主 | 2011-8-24 16:57 | 只看该作者
上面是我在网上复制的一段

使用特权

评论回复
16
dengm| | 2011-8-24 17:20 | 只看该作者
Window NT 类 os,  没用的,  1ms 就差不多了.

使用特权

评论回复
17
honglaisun|  楼主 | 2011-8-25 10:52 | 只看该作者
Window NT 类 os,  没用的,  1ms 就差不多了.
dengm 发表于 2011-8-24 17:20

对  我就是想知道1ms时间戳是怎么用的,是像定时器一样吗还是什么,谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

7

帖子

1

粉丝