/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package com.emc.storageos.systemservices.impl.logsvc.performance; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import org.junit.Test; import com.emc.storageos.systemservices.impl.logsvc.LogMessage; import com.emc.storageos.systemservices.impl.logsvc.stream.LogReader; import com.emc.storageos.systemservices.impl.logsvc.LogStatusInfo; import com.emc.vipr.model.sys.logging.LogRequest; public class LogReaderPerfTest { private static final String PATH = "/opt/storageos/logs/testData/coordinatorsvc.log"; /** * Test the performance of regular BufferedReader */ @Test // @Ignore public void testBufferedReaderPerformance() throws Exception { String filePath = PATH; BufferedReader br = new BufferedReader(new FileReader(filePath)); File file = new File(filePath); double fileSize = (double) file.length() / (1024L * 1024L); long startTime = System.nanoTime(); while (true) { String line = br.readLine(); if (line == null) { break; } } double elapsedTime = (double) (System.nanoTime() - startTime) / 1000000000.0; br.close(); double speed = fileSize / elapsedTime; System.out.println("Performance for BufferedReader"); System.out .println("Total read " + fileSize + " MB;" + " Average " + speed + " MB/sec."); } @Test public void testPerformance() throws Exception { LogStatusInfo status = new LogStatusInfo(); String filePath = PATH; File file = new File(filePath); double fileSize = (double) file.length() / (1024L * 1024L); LogRequest req = new LogRequest.Builder().build(); LogReader reader = new LogReader(filePath, req, status, null); // empty service list long startTime = System.nanoTime(); while (true) { LogMessage log = reader.readNextLogMessage(); if (log == null) { break; } } double elapsedTime = (double) (System.nanoTime() - startTime) / 1000000000.0; double speed = fileSize / elapsedTime; System.out.println("Performance for LogReader"); System.out.println("Total read " + fileSize + " MB;" + " Used " + elapsedTime + " sec; Average " + speed + " MB/sec."); } }