/** * * TURTLE PLAYER * * Licensed under MIT & GPL * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE * OR OTHER DEALINGS IN THE SOFTWARE. * * More Information @ www.turtle-player.co.uk * * @author Simon Honegger (Hoene84) */ package com.turtleplayer.util.dev; import android.util.Log; import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; public class PerformanceMeasure { private static final Map<String, Long> startMillis = new HashMap<String, Long>(); private static final String TAG = "TurtlePlayer.PerformanceLog"; public static void start(String id) { Long dublicated = startMillis.put(id, System.currentTimeMillis()); if (dublicated != null) { startMillis.remove(id); Log.v(TAG, id + ": intersecting call to PerformanceMeasure, ignoring"); } } public static void stop(String id) { Long startMillisOfId = startMillis.get(id); if (startMillisOfId == null) { Log.v(TAG, id + ": intersecting call to PerformanceMeasure, ignoring"); return; } Long millis = System.currentTimeMillis() - startMillisOfId; String formattedTime = String.format("%d min, %d sec, %d millis", TimeUnit.MILLISECONDS.toMinutes(millis), TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)), millis - TimeUnit.SECONDS.toSeconds(TimeUnit.MILLISECONDS.toSeconds(millis)) ); Log.v(TAG, id + ": " + formattedTime); startMillis.remove(id); } }