001/* 002 * Copyright 2010-2015 Institut Pasteur. 003 * 004 * This file is part of Icy. 005 * 006 * Icy is free software: you can redistribute it and/or modify 007 * it under the terms of the GNU General Public License as published by 008 * the Free Software Foundation, either version 3 of the License, or 009 * (at your option) any later version. 010 * 011 * Icy is distributed in the hope that it will be useful, 012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 014 * GNU General Public License for more details. 015 * 016 * You should have received a copy of the GNU General Public License 017 * along with Icy. If not, see <http://www.gnu.org/licenses/>. 018 */ 019package icy.system.profile; 020 021/** 022 * This class provide a simple chronometer using Calendar.getInstance().getTimeInMillis(); 023 * 024 * @author fab 025 */ 026public class Chronometer 027{ 028 long startTimeInNs; 029 String descriptionString; 030 031 public Chronometer(String descriptionString) 032 { 033 this.descriptionString = descriptionString; 034 startTimeInNs = System.nanoTime(); 035 System.out.println(descriptionString + ": chrono Started"); 036 } 037 038 public long getNanos() 039 { 040 return System.nanoTime() - startTimeInNs; 041 } 042 043 public void displayMs() 044 { 045 System.out.println(descriptionString + "(ms): " + getNanos() / 1000000f); 046 } 047 048 public void displayInSeconds() 049 { 050 System.out.println(descriptionString + "(s): " + getNanos() / 1000000000f); 051 } 052 053 @Override 054 public String toString() 055 { 056 return descriptionString + "(nanos): " + getNanos(); 057 } 058 059}