// Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. package com.android.tools.r8; import com.android.tools.r8.naming.ProguardMapReader; import com.android.tools.r8.utils.Timing; import java.io.IOException; import java.nio.file.Paths; import java.util.Arrays; /** * Benchmark for testing speed of parsing Proguard mapping files. */ public class ReadProguardMap { private static final String DEFAULT_MAP_FILE_NAME = "third_party/gmscore/v5/proguard.map"; final Timing timing = new Timing("ReadProguardMap"); private void readProguardMapFile(String fileName) { try { System.out.println(" - reading " + fileName); timing.begin("Reading " + fileName); ProguardMapReader.mapperFromFile(Paths.get(fileName)); timing.end(); } catch (IOException e) { System.err.print("Failed to parse Proguard mapping file: " + e.getMessage()); } } public static void main(String[] args) { new ReadProguardMap().run(args); } private void run(String[] args) { System.out.println("ReadProguardMap benchmark."); if (args.length == 0) { readProguardMapFile(DEFAULT_MAP_FILE_NAME); } else { Arrays.asList(args).forEach((String name) -> readProguardMapFile(name)); } timing.report(); } }