今天突然遇到一个问题,如何得到某段代码运行所花的时间,刚开始System.currentTimeMillis()搞了半天,我靠,所花的时间一直是0,电脑太神奇了?运行时间都可以忽略不计?
上网查,这才发现System.currentTimeMillis()精确到的是ms,原来代码运行太快了,用ms无法做它的运行时间单位。JDK1.5之后java中的计时给出了更精确更给力的方法:System.nanoTime(),输出的精度是纳秒ns级别
运行,果然吖。
有个需要注意的地方,不能用来计算今天是哪一天,这个你懂得
文章出自http://blog.sina.com.cn/s/blog_833611cd0100vamg.html
代码如下
Test3.java
public class Test3 {
public static void main(String[] args) {
String[] a = new String[] { "aaa", "aaa", "ccc" };
String[] b = new String[] { "aaa", "bbb", "ccc" };
Clock clock = Clock.getClock();
long start = System.nanoTime(); // 获取开始时间
System.out.println(equals(a,b));
long end = System.nanoTime(); // 获取结束时间
clock.stopAndPrint("耗时:");
System.out.println(end + "===" + start);
}
//比较两个string[] 无序是否相等
public static boolean equals(String a[],String b[]){
if(a.length!=b.length) return false;
int n=a[0].hashCode()^b[0].hashCode();
for(int i=1;i<a.length;i++){
n^=a[i].hashCode()^b[i].hashCode();
}
if(n==0) return true;
return false;
}
}
Clock.java
public class Clock {
private long start;
private Clock() { }
public static Clock getClock() {
Clock instance = new Clock();
instance.start = System.nanoTime();
return instance;
}
public void reset() {
this.start = System.nanoTime();
}
public long stop() {
return System.nanoTime() - start;
}
public void stopAndPrint(String name) {
long diff = System.nanoTime() - start;
System.out.println(name + " " + diff + " ns");
}
}
分享到:
相关推荐
在Java中,`System.currentTimeMillis()` 是一个常用的获取当前时间(以毫秒为单位)的方法。然而,在实际应用中,可能会遇到使用该方法获取的时间间隔出现异常大的情况,例如在毫秒级别的时间测量中出现16毫秒的大...
在这个例子中,我们使用`nanoTime()`方法来获取更精确的开始和结束时间,从而计算出程序运行的纳秒数。需要注意的是,虽然`nanoTime()`提供了更高的精度,但它并不表示绝对时间,也不适合用于比较不同时间点之间的...
实训商业源码-深蓝健身房瑜伽馆行业小程序V4.5.0全开源解密版-毕业设计.zip
毕业论文-Z-BlogPHP海盗导航主题模板-整站商业源码.zip
基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明,该项目是个人毕设项目,答辩评审分达到98分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指
实训商业源码-在线考试系统源码 学生教师用-毕业设计.zip
实训商业源码-自采集壁纸源码小韩美化版-毕业设计.zip
ANSYS nCode DeaignLife 高级疲劳分析技术.pdf
毕业论文-活动报名 4.1.1+年卡 1.1.3-整站商业源码.zip
BIM和PLM技术在市政工程三维设计中的应用.pdf
内容概要:本文档详细介绍了Python反爬虫技术的各种应对策略,包括基础和高级方法。基础部分涵盖User-Agent伪装、IP代理池、请求频率控制等,其中涉及使用fake_useragent库随机生成User-Agent、设置HTTP/HTTPS代理、通过随机延时模拟正常访问行为。动态页面处理方面,讲解了Selenium和Pyppeteer两种自动化工具的使用,可以用于加载并获取JavaScript渲染后的网页内容。对于验证码问题,提供了OCR识别简单验证码、Selenium模拟滑块验证码操作以及利用第三方平台破解复杂验证码的方法。登录态维持章节介绍了如何通过Session对象保持登录状态,并且演示了Cookie的保存与读取。数据加密对抗部分探讨了JavaScript逆向工程和WebAssembly破解技巧,如使用PyExecJS执行解密脚本。最后,高级反爬绕过策略中提到了WebSocket数据抓取和字体反爬解析,确保能够从各种复杂的网络环境中获取所需数据。 适合人群:有一定Python编程经验,从事数据采集工作的开发人员。 使用场景及目标:①帮助开发者理解并掌握多种反爬虫绕过技术;②为实际项目中的数据抓取任务提供有效的解决方案;③提高爬虫程序的成功率和稳定性。 其他说明:在学习过程中,建议结合具体案例进行实践,同时注意遵守网站的robots协议及相关法律法规,合法合规地进行数据采集活动。
毕业论文-叮咚-外卖餐饮小程序6.1.5 前端+后端-整站商业源码.zip
实训商业源码-抢购秒杀系统V1.0.2 安装更新包-毕业设计.zip
实训商业源码-智答-更好用的语音问答6.0.4-毕业设计.zip
毕业论文-发卡-整站商业源码.zip
Ayla NetWorks:全面探索物联网数据安全和数据隐私.pdf
毕业论文-活动报名小程序-整站商业源码.zip
jquery-1.11.0.min.js(jQuery下载)
实训商业源码-易优cms建筑项目施工装饰工程公司网站模板源码-毕业设计.zip
实训商业源码-新麦客服 1.2.8-毕业设计.zip