レポート課題9 データベースでピボット演算 (集計)

1からNまでの数(int)を、Collectionに追加するとき、addの効率、contains(特定の要素が含まれているかどうかを調べる)、Collections.sort の性能を調べたい。調べた結果はExcel、あるいはOpenOffice Calkなどを用いてグラフにし、結果について考察せよ。

提出方法

実験対象のCollection

Nを動かす: scalabilityの調査 

データベースで集計

テーブルのサンプル

時間計測の仕方

StopWatchクラス(後述)を使う。

StopWatch stopWatch = new StopWatch();

double elapsedTime = 0;

stopWatch.reset(); //計測開始
// 何か演算を行う
elapsedTime = stopWatch.getElapsedTime(); // 秒(sec.)単位で実行時間が計測できる

// データベースにelapsedTimeを記録

stopWatch.reset(); //計測開始(StopWatchをリセット)
// 何か演算を行う
elapsedTime = stopWatch.getElapsedTime(); // 計測

// データベースにelapsedTimeを記録

...

StopWatch.java

public class StopWatch
{

    private long initialSystemTIme;
    private long lastSystemTime;

    public StopWatch()
    {
        reset();
    }

    /**
     * Gets the elapsed time since this instance is created in seconds.
     * 
     * @return the elapsed time in seconds.
     */
    public double getElapsedTime()
    {
        lastSystemTime = System.currentTimeMillis();
        long diff = lastSystemTime - initialSystemTIme;
        return diff / 1000.0;
    }

    /**
     * Gets the interval time since the last call of
     * {@link StopWatch#getEleapsedTime()} or
     * {@link StopWatch#getIntervalTime()}
     * 
     * @return the interval time in seconds
     */
    public double getIntervalTime()
    {
        long now = System.currentTimeMillis();
        long diff = now - lastSystemTime;
        lastSystemTime = now;
        return diff / 1000.0;
    }

    /**
     * Reset the stop watch. The subsequent calls to
     * {@link StopWatch#getEleapsedTime()} or
     * {@link StopWatch#getIntervalTime()} will measure the time intervals
     * beginning from this method call.
     */
    public void reset()
    {
        initialSystemTIme = System.currentTimeMillis();
        lastSystemTime = initialSystemTIme;
    }

}