全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android编程计算函数时间戳的相关方法总结

本文实例讲述了Android编程计算函数时间戳的相关方法。分享给大家供大家参考,具体如下:

对于做性能的人来说,知道时间的花在哪了是比较重要的,可以在函数前后得到系统的时间,计算时间戳能够得到每个函数的时间。

JAVA中可以通过System.currentTimeMillis()得到:

long start_time = System.currentTimeMillis();
View.draw(canvas);
long end_time = System.currentTimeMillis();
long spend_time = end_time - start_time;
Log.i(TAG,"mView.draw: spend_time = " + spend_time);

native的代码中,可以通过下面的方式得到函数的执行时间:

#include <stdio.h>
#include <sys/time.h>
void main ()
{
  struct timeval time;
  gettimeofday(&time, NULL);
  printf ( "\007The current date/time is: %lld\n", time.tv_sec * 1000 + time.tv_usec /1000);
}

kernel里面,可以通过rtc,跟上层应用的时间对应起来,如下面的例子:

#include <linux/time.h>
#include <linux/rtc.h>
struct timespec time_start, time_end;
struct rtc_time tm_start, tm_end;
long time_nsec = 0;
getnstimeofday(&time_start);
rtc_time_to_tm(time_end.tv_sec, &tm_start);
printk(KERN_ERR "\n (%d-%02d-%02d %02d:%02d:%02d.%09lu UTC)\n",
tm_start.tm_year + 1900, tm_start.tm_mon + 1, tm_start.tm_mday,
tm_start.tm_hour, tm_start.tm_min, tm_start.tm_sec, time_start.tv_nsec);
.......
getnstimeofday(&time_end);
rtc_time_to_tm(time_end.tv_sec, &tm_end);
time_nsec = time_end.tv_nsec - time_start.tv_nsec;
printk(KERN_ERR "\n tid: %d, common: %s \n", current->pid, current->comm);
printk(KERN_ERR "\n end(%d-%02d-%02d %02d:%02d:%02d.%09lu UTC)\n",
tm_end.tm_year + 1900, tm_end.tm_mon + 1, tm_end.tm_mday,
tm_end.tm_hour, tm_end.tm_min, tm_end.tm_sec, time_end.tv_nsec);
printk(KERN_ERR "\n mdss_fb_commit_wq_handler end, time_nsec : %ld \n" , time_nsec);

当然过从java到native到kernel一个流程跟下去,有可能会发现user space里面的耗时比较多,而kernel里面却没有耗时的情况,这是因为有进程调度的存在。最近就遇到了这样的问题,user space一个函数耗时30ms,但是在kernel里面却没有花时间,因为从kernel返回到user space的时候,进行了进程调度,而此时的user space的thread block了,才会产生这样的情况,希望注意。

Java得到当前的年月日,时分秒格式的时间

import java.text.SimpleDateFormat;
SimpleDateFormat mFormat = new java.text.SimpleDateFormat("yyyy:MM:dd HH:mm:ss:SSS");
String time = mFormat.format(System.currentTimeMillis());

Native得到当前的年月日,时分秒格式的时间

timeval tv;
gettimeofday(&tv, NULL);
int milli = tv.tv_usec / 1000;
char buffer [80];
strftime(buffer, 80, "%Y:%m:%d %H:%M:%S", localtime(&tv.tv_sec));
char currentTime[84] = "";
sprintf(currentTime, "%s.%d", buffer, milli);
ALOGD("time: %s \n", currentTime);

到现今为止,终于把Android Java、Native、Kernel的时间时间对应起来了,对做系统性能的人来说,这是多么重要的事情呀!

PS:本站还提供了一个Unix时间戳转换工具,包含了各种常见语言针对时间戳的操作方法,提供给大家参考:

Unix时间戳(timestamp)转换工具:
http://tools./code/unixtime

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android日期与时间操作技巧总结》、《Android开发入门与进阶教程》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。


# Android  # 计算  # 函数  # 时间戳  # Android studio 运行main 函数的方法  # 详解Android应用main函数的调用  # Android Studio生成函数注释的实现方法  # Android自定义View的三个构造函数  # Android自定义view 你所需要知道的基本函数总结  # Android 自定义View的构造函数详细介绍  # Android编程之匿名内部类与回调函数用法分析  # Android自定义View构造函数详解  # Android Chronometer控件实现计时器函数详解  # Android nativePollOnce函数解析  # 可以通过  # 的人  # 却没有  # 给大家  # 转换工具  # 进阶  # 这是  # 操作技巧  # 相关内容  # 才会  # 执行时间  # 感兴趣  # 比较多  # 这是因为  # 更多关于  # 所述  # 现今  # 程序设计  # 花在  # 进行了 


相关文章: 如何零成本快速生成个人自助网站?  建站之星如何防范黑客攻击与数据泄露?  浅谈Javascript中的Label语句  智能起名网站制作软件有哪些,制作logo的软件?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  如何在万网主机上快速搭建网站?  如何在建站宝盒中设置产品搜索功能?  自助网站制作软件,个人如何自助建网站?  建站主机助手选型指南:2025年热门推荐与高效部署技巧  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  如何在Windows虚拟主机上快速搭建网站?  建站之星24小时客服电话如何获取?  如何确认建站备案号应放置的具体位置?  如何在腾讯云服务器上快速搭建个人网站?  C++如何编写函数模板?(泛型编程入门)  如何在服务器上三步完成建站并提升流量?  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  电脑免费海报制作网站推荐,招聘海报哪个网站多?  威客平台建站流程解析:高效搭建教程与设计优化方案  香港服务器部署网站为何提示未备案?  济南网站制作的价格,历城一职专官方网站?  如何在万网ECS上快速搭建专属网站?  宝塔建站无法访问?如何排查配置与端口问题?  如何用腾讯建站主机快速创建免费网站?  如何用已有域名快速搭建网站?  装修招标网站设计制作流程,装修招标流程?  北京制作网站的公司,北京铁路集团官方网站?  盘锦网站制作公司,盘锦大洼有多少5G网站?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  如何配置FTP站点权限与安全设置?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  测试制作网站有哪些,测试性取向的权威测试或者网站?  如何选择PHP开源工具快速搭建网站?  建站之星导航菜单设置与功能模块配置全攻略  建站主机解析:虚拟主机配置与服务器选择指南  如何快速查询网站的真实建站时间?  建站之星ASP如何实现CMS高效搭建与安全管理?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  宝塔Windows建站如何避免显示默认IIS页面?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  开源网站制作软件,开源网站什么意思?  建站之星图片链接生成指南:自助建站与智能设计教程  七夕网站制作视频,七夕大促活动怎么报名?  Thinkphp 中 distinct 的用法解析  为什么Go需要go mod文件_Go go mod文件作用说明  建站之星后台密码遗忘或太弱?如何重置与强化?  建站之星如何快速更换网站模板?  网站网页制作专业公司,怎样制作自己的网页?  ,如何利用word制作宣传手册? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。