📄 jestoretest.java
字号:
try { txn = env.beginTransaction(null, null); store = new JEDirectory(txn, index, blocks); gen = new Random(1251971); start = new Date(); for (int i = 0; i < count; i++) { if (i % 2 == 0) { String name = i + ".dat"; store.deleteFile(name); } } } catch (IOException e) { txn.abort(); txn = null; throw e; } catch (DatabaseException e) { if (txn != null) { txn.abort(); txn = null; } throw e; } finally { if (txn != null) txn.commit(); store.close(); } end = new Date(); System.out.print(end.getTime() - start.getTime()); System.out.println(" total milliseconds to delete even files"); duration = (int) (end.getTime() - start.getTime()); System.out.print(duration); System.out.print(" total milliseconds to create, "); System.out.print(totalLength / duration); System.out.println(" kb/s"); try { txn = env.beginTransaction(null, null); store = new JEDirectory(txn, index, blocks); gen = new Random(1251971); start = new Date(); for (int i = 0; i < count; i++) { int length = gen.nextInt() & LENGTH_MASK; if (i % 2 != 0) { String name = i + ".dat"; IndexInput file = store.openInput(name); if (file.length() != length) throw new Exception("length incorrect"); for (int j = 0; j < length; j++) { byte b = (byte) (gen.nextInt() & 0x7F); if (file.readByte() != b) throw new Exception("contents incorrect"); } file.close(); } else { for (int j = 0; j < length; j++) { gen.nextInt(); } } } } catch (IOException e) { txn.abort(); txn = null; throw e; } catch (DatabaseException e) { if (txn != null) { txn.abort(); txn = null; } throw e; } finally { if (txn != null) txn.commit(); store.close(); } end = new Date(); duration = (int) (end.getTime() - start.getTime()); System.out.print(duration); System.out.print(" total milliseconds to read, "); System.out.print(totalLength / duration); System.out.println(" kb/s"); try { txn = env.beginTransaction(null, null); store = new JEDirectory(txn, index, blocks); gen = new Random(1251971); start = new Date(); for (int i = 0; i < count; i++) { if (i % 2 != 0) { String name = i + ".dat"; store.deleteFile(name); } } } catch (IOException e) { txn.abort(); txn = null; throw e; } catch (DatabaseException e) { if (txn != null) { txn.abort(); txn = null; } throw e; } finally { if (txn != null) txn.commit(); store.close(); } end = new Date(); System.out.print(end.getTime() - start.getTime()); System.out.println(" total milliseconds to delete"); System.out.print(end.getTime() - veryStart.getTime()); System.out.println(" total milliseconds"); Cursor cursor = null; try { cursor = index.openCursor(null, null); DatabaseEntry foundKey = new DatabaseEntry(); DatabaseEntry foundData = new DatabaseEntry(); if (cursor.getNext(foundKey, foundData, LockMode.DEFAULT) == OperationStatus.SUCCESS) { fail("index database is not empty"); } } catch (DatabaseException e) { throw e; } finally { if (cursor != null) cursor.close(); } cursor = null; try { cursor = blocks.openCursor(null, null); DatabaseEntry foundKey = new DatabaseEntry(); DatabaseEntry foundData = new DatabaseEntry(); if (cursor.getNext(foundKey, foundData, LockMode.DEFAULT) == OperationStatus.SUCCESS) { fail("blocks database is not empty"); } } catch (DatabaseException e) { throw e; } finally { if (cursor != null) cursor.close(); } } public void tesArrays() throws Exception { final int count = 250; final int LENGTH_MASK = 0xffff; Random gen = new Random(1251971); int totalLength = 0; int duration; Date end; Date veryStart = new Date(); Date start = new Date(); Transaction txn = null; Directory store = null; System.out.println("Writing files as one byte array"); try { txn = env.beginTransaction(null, null); store = new JEDirectory(txn, index, blocks); for (int i = 0; i < count; i++) { String name = i + ".dat"; int length = gen.nextInt() & LENGTH_MASK; IndexOutput file = store.createOutput(name); byte[] data = new byte[length]; totalLength += length; gen.nextBytes(data); file.writeBytes(data, length); file.close(); } } catch (IOException e) { txn.abort(); txn = null; throw e; } catch (DatabaseException e) { if (txn != null) { txn.abort(); txn = null; } throw e; } finally { if (txn != null) txn.commit(); store.close(); } end = new Date(); duration = (int) (end.getTime() - start.getTime()); System.out.print(duration); System.out.print(" total milliseconds to create, "); System.out.print(totalLength / duration); System.out.println(" kb/s"); try { txn = env.beginTransaction(null, null); store = new JEDirectory(txn, index, blocks); gen = new Random(1251971); start = new Date(); for (int i = 0; i < count; i++) { String name = i + ".dat"; int length = gen.nextInt() & LENGTH_MASK; IndexInput file = store.openInput(name); if (file.length() != length) throw new Exception("length incorrect"); byte[] data = new byte[length]; byte[] read = new byte[length]; gen.nextBytes(data); file.readBytes(read, 0, length); if (!Arrays.equals(data, read)) throw new Exception("contents incorrect"); file.close(); } } catch (IOException e) { txn.abort(); txn = null; throw e; } catch (DatabaseException e) { if (txn != null) { txn.abort(); txn = null; } throw e; } finally { if (txn != null) txn.commit(); store.close(); } end = new Date(); duration = (int) (end.getTime() - start.getTime()); System.out.print(duration); System.out.print(" total milliseconds to read, "); System.out.print(totalLength / duration); System.out.println(" kb/s"); try { txn = env.beginTransaction(null, null); store = new JEDirectory(txn, index, blocks); gen = new Random(1251971); start = new Date(); for (int i = 0; i < count; i++) { String name = i + ".dat"; store.deleteFile(name); } } catch (IOException e) { txn.abort(); txn = null; throw e; } catch (DatabaseException e) { if (txn != null) { txn.abort(); txn = null; } throw e; } finally { if (txn != null) txn.commit(); store.close(); } end = new Date(); System.out.print(end.getTime() - start.getTime()); System.out.println(" total milliseconds to delete"); System.out.print(end.getTime() - veryStart.getTime()); System.out.println(" total milliseconds"); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -