01: /*
02: This source file is part of Smyle, a database library.
03: For up-to-date information, see http://www.drjava.de/smyle
04: Copyright (C) 2001 Stefan Reich (doc@drjava.de)
05:
06: This library is free software; you can redistribute it and/or
07: modify it under the terms of the GNU Lesser General Public
08: License as published by the Free Software Foundation; either
09: version 2.1 of the License, or (at your option) any later version.
10:
11: This library is distributed in the hope that it will be useful,
12: but WITHOUT ANY WARRANTY; without even the implied warranty of
13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: Lesser General Public License for more details.
15:
16: You should have received a copy of the GNU Lesser General Public
17: License along with this library; if not, write to the Free Software
18: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19:
20: For full license text, see doc/license/lgpl.txt in this distribution
21: */
22:
23: package drjava.smyle.tests;
24:
25: import java.io.*;
26: import java.util.*;
27: import drjava.util.*;
28: import drjava.smyle.*;
29: import drjava.smyle.core.*;
30: import org.artsProject.mcop.*;
31:
32: public class FileBench extends Benchmark {
33: static final int n = 100000, repeat = 3;
34: FileSystemDisk disk;
35:
36: public FileBench() {
37: setDescription("Creating and randomly accessing " + n
38: + " files");
39: }
40:
41: protected void action() {
42: disk = new FileSystemDisk(new File("temp/filebench"), false);
43:
44: for (int i = 0; i < n; i++) {
45: Buffer buf = new Buffer();
46: buf.writeLong(1);
47: DiskUtil.bufferToFile(disk, buf);
48: }
49: done("Create " + n + " files");
50:
51: Random rand = new Random(0);
52:
53: for (int r = 0; r < repeat; r++) {
54: for (int i = 0; i < n; i++) {
55: int fileNr = ((rand.nextInt() & 0x7FFFFFFF) % n) + 1;
56: DiskUtil.fileToBuffer(disk, fileNr);
57: }
58: done("Access " + n + " files");
59: }
60: disk.release();
61: done("release");
62: }
63:
64: public static void main(String[] args) {
65: for (int i = 0; i < 1; i++) {
66: FileBench bench = new FileBench();
67: bench.runAndPrint();
68: }
69: }
70: }
|