请问:Symbian Emulator 上的时间粒度可以达到多大?

liqi922 2005-08-17 05:54:32
我用TTime::HomeTime();来得到时间在微秒级始终是不变得,我没有在实际设备上试过(没money阿!)

代码如下:
//////////////////////////////////////////////////
TTimeIntervalMicroSeconds delta;
TTime t1,t2;

t1.HomeTime();
User::After(100);
t2.HomeTime();

delta = t1.MicroSecondsFrom(t2);
printf("micro delta high %d low %d .\n",delta.Int64().High(),delta.Int64().Low());

//////////////////////////////////////////////////

结果是:
micro delta high 0 low 110000 .

而且我写了好多个程序,发现这个末三位,就是微妙级的始终是不变的。是不是emulator上精度做的不够啊。那位大虾有实物,能否给我测试以下,看看在现实的机器上面可否做到微妙级?
多谢!
...全文
129 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liqi922 2005-08-18
  • 打赏
  • 举报
回复
1/64s这个太不令人满意了,HomeTime()的方法声称可以得到microsecond的,我开始认为是仿真器的问题,可能在真机上他的计算会更准确。烦劳陈大虾帮我在真机上用TTime.HomeTime()测试一下,看看结果是什么,问题解决,必多多给分!
liqi922 2005-08-18
  • 打赏
  • 举报
回复
大虾,你在真机上运行这段代码的结果能告诉我吗?
//////////////////////////////////////////////////
TTimeIntervalMicroSeconds delta;
TTime t1,t2;

t1.HomeTime();
User::After(10);
t2.HomeTime();

delta = t1.MicroSecondsFrom(t2);
printf("micro delta high %d low %d .\n",delta.Int64().High(),delta.Int64().Low());

//////////////////////////////////////////////////

那你的意思应该是0了,但User::After()可以达到microsecond的,是说他在真机上也不是microsecond的吗?
liqi922 2005-08-18
  • 打赏
  • 举报
回复
不知道s80上是否能好一点,结账把!
多谢,陈大虾!
chenziteng 2005-08-18
  • 打赏
  • 举报
回复
...看来你也是一个只相信自己的脚,不相信尺码的人。

你给的代码有问题:
1. delta的计算方式有误,应该是t2自t1以来的时间
delta = t2.MicroSecondsFrom(t1);

2. 粒度是两个相邻的时间点的时差,这样求比较好:
TTime t1;
TTime t2;
t1.HomeTime();
t2.HomeTime();
while(t1==t2)
{
t2.HomeTime();
}
TTimeIntervalMicroSeconds delta = t2.MicroSecondsFrom(t1);


如下是在P910c(Symbian OS 7.0 + UIQ2.1)上的测试结果:
high: 0
low : 15625

可见粒度就是1/64秒(15625微秒)
chenziteng 2005-08-17
  • 打赏
  • 举报
回复
没办法。
liqi922 2005-08-17
  • 打赏
  • 举报
回复
chenziteng,先谢过您的回复!

可是我现在需要做一个程序性能分析的程序,要求达到microseconds,就是小数点后6位。那我在真机上岂不是也无法做到,还是另有高招呢?多谢!

只要处理器速度达到1Mhz,他的clock tick就应该达到了microseconds这个级别了,现在的处理器应该可以达到microseconds级吧?如果我想达到这个级别应该用什么方法呢?多谢指点!
chenziteng 2005-08-17
  • 打赏
  • 举报
回复
上面指的是现有的EKA1的SDK和真机

更详细的说明参见下面这篇文档:
http://www.forum.nokia.com/info/sw.nokia.com/id/2a43afa1-d924-4dcf-888b-d5dba6e1cfc4/Tip_Of_The_Month_Timer_Issues_And_Tips_v1_0_en.pdf.html
chenziteng 2005-08-17
  • 打赏
  • 举报
回复
仿真器上是1/100秒
真机上是1/64秒
liqi922 2005-08-17
  • 打赏
  • 举报
回复
这个64位整数就是以microseconds作为单位的,那位大虾帮我看一下!

而且我很想知道在实际设备上运行的情况,我想应该可以达到微妙一级!

期待!
Nokia官方培训(Symbian 4300)笔记  

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧