⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oo1benchmarkapp.java

📁 用Java写的面相对象的数据库管理系统
💻 JAVA
字号:
// You can redistribute this software and/or modify it under the terms of// the Ozone Library License version 1 published by ozone-db.org.//// The original code and portions created by SMB are// Copyright (C) 1997-2000 by SMB GmbH. All rights reserved.//// $Id: OO1BenchmarkApp.java,v 1.5 2000/10/28 16:55:20 daniela Exp $package org.ozoneDB.tools;import java.awt.*;import java.awt.event.*;import java.applet.*;import java.io.*;import java.util.*;/** */class BenchmarkThread extends Thread {    /** */    public String benchmarkClassName;    private int benchmarkId = 1;    private int size = 1000;    private String objectName = "cattell";    private String serverHost = "localhost";    private BenchmarkProgressLog log = new BenchmarkProgressLog();            /** */    public BenchmarkThread( String className ) {        benchmarkClassName = className;    }            /** */    public void setProgressLog( BenchmarkProgressLog blog ) {        log = blog;    }             /** */    public String[] filterAndApplyArgs( String[] args ) {        Vector remainingArgs = new Vector();                for (int i = 0; i < args.length; i++) {            if (args[i].startsWith( "-benchmark=" )) {                benchmarkId = new Integer( args[i].substring( 11 ) ).intValue();            } else if (args[i].startsWith( "-size=" )) {                size = new Integer( args[i].substring( 6 ) ).intValue();            } else if (args[i].startsWith( "-name=" )) {                objectName = args[i].substring( 6 );            } else if (args[i].startsWith( "-host=" )) {                serverHost = args[i].substring( 6 );            } else {                remainingArgs.addElement( args[i] );            }         }                 String[] result = new String[remainingArgs.size()];        for (int i = 0; i < result.length; i++) {            result[i] = (String)remainingArgs.elementAt( i );        }                 return result;    }             /** */    public static String availableArgs() {        return "-benchmark=<test> -size=<size> [-name=<name>] [-host=<host[:port]>]";    }             /** */    public static String helpText() {        return                 "    -benchmark= : 1: create database; size: 100..(10000)\n"                 + "                  2: lookup; size 1..\n" + "                  3: traversal; size: 1..7\n"                 + "                  4: insert and delete; size: 1..\n" + "                  5: insert; size: 1..\n"                 + "                  6: insert size*1000 objects\n"                 + "                  7: traversal on the first size cattell objects\n"                 + "                  8: insert on the first size cattell objects\n"                 + "          -size : the size of the test\n"                 + "          -name : optional name of the benchmark object\n"                 + "          -host : optional name of the server host\n";    }             /** */    public void run() {        try {            Class benchmarkClass = Class.forName( benchmarkClassName );            OO1Benchmark benchmark = (OO1Benchmark)benchmarkClass.newInstance();            benchmark.setProgressLog( log );            switch (benchmarkId) {            case 1:                benchmark.create( size, objectName, serverHost );                break;            case 2:                benchmark.lookup( size, objectName, serverHost );                break;            case 3:                benchmark.traversal( size, objectName, serverHost );                break;            case 4:                benchmark.insertAndDelete( size, objectName, serverHost );                break;            case 5:                benchmark.insert( size, objectName, serverHost );                break;            case 55:                benchmark.delete( size, objectName, serverHost );                break;            case 6:                benchmark.createObjects( size, objectName, serverHost );                break;            case 7:                benchmark.traversalObjects( size, objectName, serverHost );                break;            case 8:                benchmark.insertObjects( size, objectName, serverHost );                break;            }        } catch (Exception e) {            e.printStackTrace();        }     } }/** */public class OO1BenchmarkApp extends Applet implements ActionListener, ItemListener {            /** */    public class AppletProgressLog extends BenchmarkProgressLog {                        /** */        public AppletProgressLog() {        }                        /** */        public void logMessage( String msg ) {            if (outText != null) {                outText.append( msg + "\n" );            }         }                         /** */        public void logTime( long time ) {            if (outText != null) {                outText.append( "time: " + time + "msec\n" );            }             if (chart != null) {                chart.appendTime( time );            }         }     }        /** */    protected Button startButton;    protected Choice testChoice;    protected TextField sizeText;    protected TextField nameText;    protected TextField serverText;    protected TextField portText;    protected TextArea outText;    protected Label statusLabel;    protected ChartCanvas chart;    protected BenchmarkThread benchmarkThread;            /** */    public OO1BenchmarkApp() {    }            /** */    public void init() {        init( false, new BenchmarkThread( "CattellImpl" ) );    }             /** */    public void init( boolean chartOnly, BenchmarkThread bmt ) {        benchmarkThread = bmt;        setLayout( new BorderLayout() );                if (!chartOnly) {            Panel panel = new Panel();            panel.setLayout( new FlowLayout( FlowLayout.LEFT ) );                        startButton = new Button( " Start " );            startButton.setFont( new Font( "Monospaced", Font.BOLD, 14 ) );            startButton.addActionListener( this );            panel.add( startButton );                        testChoice = new Choice();            testChoice.add( "Help" );            testChoice.add( "1 Create" );            testChoice.add( "2 Lookup" );            testChoice.add( "3 Traversal" );            testChoice.add( "4 Ins & del" );            testChoice.add( "5 Insert" );            testChoice.add( "6 Ins*1000" );            testChoice.add( "7 Traversal" );            testChoice.add( "8 Insert" );            testChoice.addItemListener( this );            panel.add( testChoice );                        sizeText = new TextField( "1000", 5 );            sizeText.setFont( new Font( "Monospaced", Font.PLAIN, 12 ) );            sizeText.addActionListener( this );            panel.add( sizeText );                        nameText = new TextField( "cattell", 9 );            nameText.setFont( new Font( "Monospaced", Font.PLAIN, 12 ) );            nameText.addActionListener( this );            panel.add( nameText );                        serverText = new TextField( "localhost", 9 );            serverText.setFont( new Font( "Monospaced", Font.PLAIN, 12 ) );            serverText.addActionListener( this );            panel.add( serverText );                        portText = new TextField( "3333", 9 );            portText.setFont( new Font( "Monospaced", Font.PLAIN, 12 ) );            portText.addActionListener( this );            panel.add( portText );                        add( "North", panel );                        panel = new Panel();            panel.setLayout( new BorderLayout() );                        outText = new TextArea();            panel.add( outText, "North" );                        chart = new ChartCanvas();            panel.add( chart, "Center" );                        add( "Center", panel );                        statusLabel = new Label( "Test:Build - Size:1000 - Name:cattell " );            add( "South", statusLabel );        } else {            chart = new ChartCanvas();            add( "Center", chart );        }                 benchmarkThread.setProgressLog( new AppletProgressLog() );    }             /** */    public void itemStateChanged( ItemEvent e ) {        String[] defaults = {"0", "1000", "100", "7", "100", "100", "10", "10", "10"};        if (testChoice.getSelectedIndex() > -1) {            sizeText.setText( defaults[testChoice.getSelectedIndex()] );        }     }             /** */    public void actionPerformed( ActionEvent e ) {        if (startButton.getLabel().equals( " Start " )) {            int test = testChoice.getSelectedIndex();            int size = Integer.valueOf( sizeText.getText() ).intValue();            String name = nameText.getText();            String server = serverText.getText();            String port = portText.getText();            statusLabel.setText( "Test: " + test + " Size: " + size + " Name: " + name + " Host: " + server + ":"                     + port );                        String[] args = {"-benchmark=" + test, "-size=" + size, "-name=" + name, "-host=" + server + ":" + port};            benchmarkThread.filterAndApplyArgs( args );            startButton.setLabel( " Stop " );            benchmarkThread.start();        } else {            benchmarkThread.stop();            benchmarkThread = new BenchmarkThread( benchmarkThread.benchmarkClassName );            benchmarkThread.setProgressLog( new AppletProgressLog() );            startButton.setLabel( " Start " );        }     }             /** */    public static void createFrame( boolean chartOnly, BenchmarkThread thread ) {        Frame f = new Frame( "Cattell Benchmark" );        OO1BenchmarkApp applet = new OO1BenchmarkApp();                applet.init( chartOnly, thread );        applet.start();                f.add( "Center", applet );        f.pack();        f.setSize( chartOnly ? 300 : 550, chartOnly ? 120 : 400 );        f.show();        f.addWindowListener( new WindowAdapter() {                                    public void windowClosing( WindowEvent e ) {                System.exit( 0 );            }         } );                if (chartOnly) {            thread.run();        }     }             /** */    public static void main( String[] args ) {        boolean chartOnly = false;        boolean noGui = false;        String benchmarkClass = "CattellImpl";                for (int i = 0; i < args.length; i++) {            if (args[i].startsWith( "-chartOnly" )) {                chartOnly = true;            } else if (args[i].startsWith( "-noGui" )) {                noGui = true;            } else if (args[i].startsWith( "-class=" )) {                benchmarkClass = args[i].substring( 7 );            } else {                if (args[i].startsWith( "-help" ) || args[i].startsWith( "-?" )) {                    System.out.println( "usage: java OO1BenchmarkApp " + BenchmarkThread.availableArgs() + " "                             + ChartCanvas.availableArgs() + " "                             + "[-chartOnly] [-noGui] [-class=<classname>] [-help|-h|-?]\n" + "Details:\n"                             + BenchmarkThread.helpText() + ChartCanvas.helpText()                             + "     -chartOnly : show only the chart panel and perform the given test\n"                             + "         -noGui : show no GUI at all and perform the given test\n"                             + "        -class= : the benchmark class, default is CattellImpl\n"                             + "    -help|-h|-? : shows this help" );                    return;                }             }         }                 BenchmarkThread thread = new BenchmarkThread( benchmarkClass );        thread.filterAndApplyArgs( args );        if (noGui) {            thread.run();        } else {            createFrame( chartOnly, thread );        }     } }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -