| # Copyright (c) Meta Platforms, Inc. and affiliates. |
| # All rights reserved. |
| # |
| # This source code is licensed under the BSD-style license found in the |
| # LICENSE file in the root directory of this source tree. |
| |
| import argparse |
| import sys |
| |
| from executorch.profiler.parse_profiler_results import ( |
| deserialize_profile_results, |
| mem_profile_table, |
| profile_aggregate_framework_tax, |
| profile_framework_tax_table, |
| profile_table, |
| ) |
| |
| |
| def main() -> int: |
| parser = argparse.ArgumentParser() |
| parser.add_argument("--prof_results_bin", help="profiling results binary file") |
| args = parser.parse_args() |
| |
| with open(args.prof_results_bin, "rb") as prof_results_file: |
| out_bytes = prof_results_file.read() |
| |
| prof_data, mem_allocations = deserialize_profile_results(out_bytes) |
| framework_tax_data = profile_aggregate_framework_tax(prof_data) |
| |
| prof_tables = profile_table(prof_data) |
| for table in prof_tables: |
| print(table) |
| |
| prof_tables_agg = profile_framework_tax_table(framework_tax_data) |
| for table in prof_tables_agg: |
| print(table) |
| |
| mem_prof_tables = mem_profile_table(mem_allocations) |
| for table in mem_prof_tables: |
| print(table) |
| return 0 |
| |
| |
| def invoke_main() -> None: |
| sys.exit(main()) |
| |
| |
| if __name__ == "__main__": |
| invoke_main() # pragma: no cover |