易截截图软件、单文件、免安装、纯绿色、仅160KB

Java优化策略(一):底层优化

By 冲出宇宙 from 傲尔科技(www.hour41.com)
时间:2006-11-17
注:转载请注明作者和单位。
       Java语言标准从1996年发布第一版,到2000年发布第二版,再到2004年发布第三版,java语言已经经过了3次大的扩充和改进。功能是越来越多,操作是越来越复杂。显然,性能问题也就越来越突出。本文将力图从java本身分析优化java代码的各种可能。文章的数据未经特别说明,均来自于jdk5.0版本。
1 Java基本数据类型时间分析
       因为单独测试一个基本类型的变量很不精确,无论你怎么测,误差都很大。所以,我们只能大致的给出速度上的差别。
       变量的访问速度和访问的类型是有很大关系的,一般我们直接使用2个变量的操作时间来衡量变量的访问速度。显然,byte + byte的速度和int + int的速度肯定是不同的。我们对以下几类基本操作进行了速度测试:加减(+,-)、乘(*)、除(/)、移位(>>,<<,>>>,<<<)和布尔运算(|,&,^)。为了保证数据的有效性,测试得到了3份结果,取平均值,得到下面的各个基本数据类型的大致时间花销比例如下表(以下均以此作为参考对象,一个时间单位在我的机器上大约是600ps,即0.6ns,也就是6e-10秒):
加减


移位
布尔运算
byte
1.5
6
50
1.5
1
short
1.2
5.5
50
1.2
1
int
1
5
48
1
1
long
5
10
140
8.5
2
float
15
600
350
-
-
double
15
600
350
-
-
       从表中我们可以看出:
1.         int的运算速度最快,short次之,byte再次之,long再次之。float和double运算速度最慢。
2.         除法比乘法慢的太多,基本上除法是乘法的9倍时间。当然,除了浮点型外。根据intel cpu的参考数据,乘法计算时间是移位运算的4-5倍是比较正常的。
3.         long类型的计算很慢,建议一般少使用它。
4.         double运算速度和float相当;
5.         浮点的乘法比除法要慢。但是,这个结果并不能真正说明问题。这个结果只是一个一般


相关文档:

一些Java题目

1.String str = new String("abc"); 请问定义了几个对象。定义了两个对象,一个"abc", 一个是new String().<String s = "abc";首先到堆中查找值为"abc"的对象,没有就新建一个对象,"abc"本身就是一个对象。>
2.面向对象的东西:abstract & interface的各自的作用,区别。
3.面向对象的特征,以及怎么实现的。1 ......

java中的关键字(transient)

transient这个关键字并不常见,主要应用在java的序列化方面。这里我再多说,转一篇老外的文章,很生动,欣赏吧
 
Be Careful With Transient Data
Java's serialization provides an elegant, and easy to use mechanism for making an object's state persistent. While controlling object serialization, we mig ......

java 连接字符串

1. MySQL(http://www.mysql.com)mm.mysql-2.0.2-bin.jar ;
Class.forName( "org.gjt.mm.mysql.Driver" );
cn = DriverManager.getConnection( "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName", sUsr, sPwd );
2. PostgreSQL(http://www.de.postgresql.org)pgjdbc2.jar ;
Class.forName( "org.postgresql. ......

java中Keytool的使用总结

以前用过几次这个东东,但每次都重新查询一次。本文原始出处是这里 。
-----------------------------------------------------------
Keytool 是一个Java 数据证书的管理工具 ,Keytool 将密钥(key)和证书(certificates)存在一个称为keystore的文件中在k ......

java存储图片到数据库

1   mysql存储大容量的二进制文件的格式是blob,其实除了图片还可以存别的
2   要向数据库存储二进制的文件一定要把要存储的数据转换成二进制流
废话就不多说了,大家看看代码很容易明白,先来看一个app程序,当然首先您要在数据库中先建立一个用于保存图片的表和相应的列,数据格式为blob
package ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号