本文实例讲述了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小时内与您取得联系。