package at.favre.lib.dali.util; import android.os.Build; import android.os.SystemClock; import java.math.RoundingMode; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; public class BenchmarkUtil { private static final DecimalFormat format = new DecimalFormat("#.0"); private static final String fileSeperator = ";"; static { format.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.ENGLISH)); format.setRoundingMode(RoundingMode.HALF_UP); } private BenchmarkUtil(){} public static long elapsedRealTimeNanos() { if (Build.VERSION.SDK_INT >= 17) { return SystemClock.elapsedRealtimeNanos(); } return SystemClock.elapsedRealtime() * 1000000l; } public static String formatNum(double number) { return format.format(number); } public static String formatNum(double number, String formatString) { final DecimalFormat format = new DecimalFormat(formatString); format.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.ENGLISH)); format.setRoundingMode(RoundingMode.HALF_UP); return format.format(number); } public static String getScalingUnitByteSize(int byteSize) { double scaledByteSize = (double) byteSize; String unit = "byte"; if(scaledByteSize < 1024) { return formatNum(scaledByteSize,"0.##")+unit; } else { unit = "KiB"; scaledByteSize /= 1024d; if(scaledByteSize < 1024) { return formatNum(scaledByteSize,"0.##")+unit; } else { unit = "MiB"; scaledByteSize /= 1024d; if(scaledByteSize < 1024) { return formatNum(scaledByteSize,"0.##")+unit; } else { unit = "GiB"; scaledByteSize /= 1024d; return formatNum(scaledByteSize,"0.##")+unit; } } } } public static String getCurrentTime() { SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss.SSS", Locale.getDefault()); return sdf.format(new Date()); } }