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中要读取pdf文件内容,我们可以借助第三方软件实现。常用的是xpdf,本文就简单介绍在linux下如何安装xpdf,及在java中如何利用xpdf读取pdf文件内容。
一.安装xpdf
在fc系列下,不用安装,可以直接yum,但是笔者建议还是下载安装的好,因为笔者曾经碰到过这样的问题,客户服务 ......
很多人问到如何抽取word,excel,pdf阿。这里我总结一下抽取word,pdf的
几种方法。
1。用jacob.
其实jacob是一个bridage,连接java和com或者win32函数的一个中间件,jacob并不能直接抽取word,excel等文件,需要自己写dll哦,不过已经有为你写好的了,就是jacob的作者一并提供了。
jacob下载:http://www.matrix.org ......
首先要有jxl类库。
程序如下:
import java.io.*;
import jxl.*;
public class ExcelToSql {
public static void main(String args[])
{
try
{
Workbook book= Workbook.getWorkbook(new File("D:\\workspaceuse6\\foundation\\test\\com\\gres ......
谈谈Java继承中的重载,覆盖和隐藏
好久不写博客了,距离上一篇已经过了两年多了。这两年在干嘛,总之一年难尽!
前一段时间忙了两个月,忙着研究和做一些SSH架构的东西,两个月下来,收获颇丰,最近闲下来了,于是就痛快的开始玩游戏,但是不知怎么地,怎么玩都没意思,于是决定开始再好好研究研究Java吧。于是大概翻了翻 ......