| // 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.ClassNameMapper; | |
| import com.android.tools.r8.utils.timing.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 = Timing.empty(); | |
| private void readProguardMapFile(String fileName) { | |
| try { | |
| System.out.println(" - reading " + fileName); | |
| timing.begin("Reading " + fileName); | |
| ClassNameMapper.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(this::readProguardMapFile); | |
| } | |
| timing.report(); | |
| } | |
| } |