org.accelio.jxio.tests.benchmarks.StatTest.java Source code

Java tutorial

Introduction

Here is the source code for org.accelio.jxio.tests.benchmarks.StatTest.java

Source

/*
 ** Copyright (C) 2013 Mellanox Technologies
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
 ** You may obtain a copy of the License at:
 **
 ** http://www.apache.org/licenses/LICENSE-2.0
 **
 ** Unless required by applicable law or agreed to in writing, software
 ** distributed under the License is distributed on an "AS IS" BASIS,
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
 ** either express or implied. See the License for the specific language
 ** governing permissions and  limitations under the License.
 **
 */
package org.accelio.jxio.tests.benchmarks;

import org.accelio.jxio.EventQueueHandler;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.accelio.jxio.tests.benchmarks.StatClientSession;

public class StatTest implements Runnable {

    static final int NUM_ITER = 100;
    int num_sessions;
    int port;
    String hostname;
    private final static Log LOG = LogFactory.getLog(StatTest.class.getCanonicalName());

    public StatTest(String hostname, int port, int num_sessions) {
        this.hostname = hostname;
        this.port = port;
        this.num_sessions = num_sessions;

    }

    void print(String str) {
        LOG.debug("********" + str);
    }

    public void run() {

        // Setup parameters
        EventQueueHandler eqh = new EventQueueHandler();
        String url = "rdma://" + hostname + ":" + port;
        // Need to make sure that GC will not run
        StatClientSession[] clArr = new StatClientSession[NUM_ITER];

        long startTime = System.nanoTime();
        for (int i = 0; i < NUM_ITER; i++) {
            print("NUM_ITER = " + i);
            clArr[i] = new StatClientSession(eqh, url, num_sessions);

            eqh.runEventLoop(EventQueueHandler.INFINITE_EVENTS, EventQueueHandler.INFINITE_DURATION);
        }

        long endTime = System.nanoTime();
        double sec = (double) (endTime - startTime) / 1000000000 / NUM_ITER;
        System.out.println(" It took " + sec + " seconds for " + num_sessions + " sessions");
        eqh.close();
    }
}