Java程序运行纳秒级差值计算

举报
红目香薰 发表于 2022/02/07 22:35:31 2022/02/07
【摘要】 纳秒 ns(nanosecond):纳秒, 时间单位。一秒的10亿分之一,即等于10的负9次方秒。常用作 内存读写速度的单位。 1纳秒=1000 皮秒 1纳秒 =0.001  微秒 1纳秒=0.000001 毫秒 1纳秒=0.00000 0001秒 其实翻过来看更清晰,咱们...

纳秒

ns(nanosecond):纳秒, 时间单位。一秒的10亿分之一,即等于10的负9次方秒。常用作 内存读写速度的单位。
1纳秒=1000 皮秒

1纳秒 =0.001  微秒

1纳秒=0.000001 毫秒

1纳秒=0.00000 0001秒

其实翻过来看更清晰,咱们看毫秒啊

100000纳秒=1毫秒

java的System.currentTimeMillis()和System.nanoTime()区别:


java中System.nanoTime()返回的是纳秒,

nanoTime而返回的可能是任意时间,甚至可能是负数……

java中System.currentTimeMillis()返回的毫秒,这个毫秒其实就是自1970年1月1日0时起的毫秒数.

两个方法都不能保证完全精确,精确程度依赖具体的环境.

更细致的差别


  
  1. package Action;
  2. public class demo {
  3. public static void main(String[] args) {
  4. //1纳秒=0.000001 毫秒
  5. //100000纳秒=1毫秒
  6. int count=100000;
  7. long start = System.nanoTime();
  8. long sum=0;
  9. for (int i = 1; i <= count; i++) {
  10. sum+=i;
  11. }
  12. System.out.println(sum);
  13. long end = System.nanoTime();
  14. System.out.println("累计"+count+"的值用时:"+(end-start)+"纳秒");
  15. System.gc();//清理一下
  16. long start1 = System.currentTimeMillis();
  17. long sum1=0;
  18. for (int i = 1; i <= count; i++) {
  19. sum1+=i;
  20. }
  21. System.out.println(sum1);
  22. long end1 = System.currentTimeMillis();
  23. System.out.println("累计"+count+"的值用时:"+(end1-start1)+"毫秒");
  24. }
  25. }

可以看到纳秒更加细致的反应除了程序的运行之间,基本上定义一个变量用时100纳秒,咱们可以根据具体的情况进行更为细致的优化,让程序更加的快捷。

文章来源: laoshifu.blog.csdn.net,作者:红目香薰,版权归原作者所有,如需转载,请联系作者。

原文链接:laoshifu.blog.csdn.net/article/details/122800986

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。