nanoTime对volatile 测试的一种写法

今天脑筋有点搭牢,想了半天才看出为什么以下两段代码效果是相同的。。。

第一种好处是可以直接批量复制黏贴system.out,  不用改什么东西

  private static long i;
  private volatile static long vt;
  private static final int TEST_SIZE = 10000000;

long time = System.nanoTime();
for (int n = 0; n < TEST_SIZE; n++)
	vt = System.currentTimeMillis();
System.out.println(-time + (time = System.nanoTime()));
for (int n = 0; n < TEST_SIZE; n++)
	i = System.currentTimeMillis();
System.out.println(-time + (time = System.nanoTime()));

  

这种每次要在循环头上重置nanoTime

private static long i;private volatile static long vt;private static final int TEST_SIZE = 10000000;

long time = System.nanoTime();
for (int n = 0; n < TEST_SIZE; n++) {
            vt = System.currentTimeMillis();
}
System.out.println((System.nanoTime() - time));

time = System.nanoTime();
for (int n = 0; n < TEST_SIZE; n++) {
      i = System.currentTimeMillis();
}
System.out.println((System.nanoTime() - time));

  

时间: 2024-09-25 14:37:15

nanoTime对volatile 测试的一种写法的相关文章

Android代码规范----按钮单击事件的四种写法

[前言] 按钮少的时候用第三种的匿名内部类会比较快,比如写demo测试的时候或者登陆界面之类. 按钮多的时候一般选择第四种写法.   一.第一种写法:在XML文件中指定(很少用) 在XML文件中显式指定控件的onClick属性,点击按钮时会利用反射的方式调用对应Activity中的onClick()方法. (1)xml文件代码如下: 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

单例模式的七种写法(二)

第一种(懒汉,线程不安全):   Java代码   public class Singleton {       private static Singleton instance;       private Singleton (){}          public static Singleton getInstance() {       if (instance == null) {           instance = new Singleton();       }     

单例模式的七种写法

Java:单例模式的七种写法 转载出处:http://cantellow.javaeye.com/blog/838473 第一种(懒汉,线程不安全):  1 public class Singleton {   2     private static Singleton instance;   3     private Singleton (){}    4     public static Singleton getInstance() {   5     if (instance ==

C# 浮点数强制转换为整数,两种写法结果不一样

问题描述 floata=70.075f;intbb=(int)(a*1000);floatc=a*1000;intcc=(int)c;上面的代码按理说得到的cc和bb应该一样,但实际上bb的结果为70074,cc结果是70075.很疑惑这两种写法上有什么区别,为什么会导致这样的问题?请大神分析一下. 解决方案 解决方案二:都75啊楼主你电脑坏了吧解决方案三:framework4.0刚刚测试,结果都是70075解决方案四:引用1楼shingoscar的回复: 都75啊楼主你电脑坏了吧 解决方案五:

jquery插件的几种写法

最近Web应用程序中越来越多地用到了JQuery等Web前端技术.这些技术框架有效地改善了用户的操作体验,同时也提高了开发人员构造丰富客户端UI的效率.JQuery本身提供了丰富的操作,但是,有时候我们需要根据我们自己的业务和系统特色(风格)构造一些我们常用的前端UI组件,而 JQuery的插件给了我们一个较好的方式来构造这些UI组件,方便我们日后反复重用这些组件.下面,我将说明JQuery插件常用的写法,以及这些插件的常用场景 首先,在具体说明编写插件之前,我们先假定一个使用场景:有一个HTM

Java中单例模式的7种写法_java

第一种(懒汉,线程不安全): public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } 这种写法lazy loading很明显,但是致命的是在多线程不能正常工作.

sql分页查询几种写法_MsSql

关于SQL语句分页,网上也有很多,我贴一部分过来,并且总结自己已知的分页到下面,方便日后查阅 1.创建测试环境,(插入100万条数据大概耗时5分钟). create database DBTest use DBTest --创建测试表 create table pagetest ( id int identity(1,1) not null, col01 int null, col02 nvarchar(50) null, col03 datetime null ) --1万记录集 declar

sql分页查询几种写法

关于SQL语句分页,网上也有很多,我贴一部分过来,并且总结自己已知的分页到下面,方便日后查阅 1.创建测试环境,(插入100万条数据大概耗时5分钟). create database DBTest use DBTest --创建测试表 create table pagetest ( id int identity(1,1) not null, col01 int null, col02 nvarchar(50) null, col03 datetime null ) --1万记录集 declar

C# 单例模式的五种写法

C# 单例模式的五种写法及优劣分析,见下文: [单例模式及常见写法](http://blog.csdn.net/jiankunking/article/details/50867050)