首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java随机访问资料性能测试比较

2012-12-25 
java随机访问文件性能测试比较测试程序:???import java.io.Fileimport java.io.RandomAccessFile?public

java随机访问文件性能测试比较

测试程序:

?

?

?

import java.io.File;

import java.io.RandomAccessFile;

?

public class RandomAccessFiletest {

static int block = 1024;

static int[] block_ = { 1 * block, 2 * block, 4 * block, 8 * block, 16 * block,

32 * block, 64 * block, 128 * block, 256 * block, 512 * block, 1024 * block,

2 * 1024 * block, 4 * 1024 * block, 8 * 1024 * block, 16 * 1024 * block,

32 * 1024 * block, 64 * 1024 * block, 128 * 1024 * block, 256 * 1024 * block };

?

public static void main(String[] args) throws Exception {

?

//

for (int i = 1; i < block_.length; i++) {

block = block_[i];

long l = System.currentTimeMillis();

testRead();

System.out.println(block + "" + (System.currentTimeMillis() - l));

}

}

?

private static void testRead() throws Exception {

File file = new File("e:\\a.ss");// exxe.sql.bak

long size = file.length();

RandomAccessFile accessFile = new RandomAccessFile(file, "r");

byte[] b = new byte[block];

long length = Math.round(size / block);

long position = 0;

for (long i = 0; i < length; i++) {

accessFile.read(b);

position += block;

if (position <= size) {

accessFile.seek(position);

}

// System.out

// .println(position + "-" + block + "-" + size + "-" + (size - position));

?

// String str=new String(b);

}

accessFile.close();

}

}


测试结果:
文件大小---------------·--------------------------------byte[]大小100M100M800M800M2G2G20482352342425052501196721284224096156157128112508593753516819212512595495364672595471638410917185985949422537183276811015779779717876554203655361091567507341871104768813107294156719719222656600622621449478703703702346886052428820321917031578135188953901048576219203173417041191721824382097152218219184418281757811736254194304235250195319062139222097508388608250234196919533724842395001677721625025019691953395407395594335544322652661984200022907825498467108864203203195319061413591801881342177281101092031193810381310292126843545620320427485270167685965079

结论:
对于超过100M的文件每次读取4K-256KB比较合适。

热点排行