| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #!/usr/bin/env python3
- #
- # Copyright (c) 2021 Project CHIP Authors
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- #
- """Generate a summary of memory use.
- This program reads memory usage information produces aggregated totals
- according to the `--report-by` option:
- * `--report-by section` (the default) aggregates memory usage by section.
- * `--report-by region` aggregates memory usage by region. A region is a
- configuration-defined group of sections.
- Use `--collect-method=help` to see available collection methods.
- Use `--output-format=help` to see available output formats.
- """
- import sys
- import memdf.collect
- import memdf.report
- import memdf.select
- from memdf import Config, DFs, SymbolDF
- def main(argv):
- status = 0
- try:
- config: Config = memdf.collect.parse_args(
- {
- **memdf.select.CONFIG,
- **memdf.report.REPORT_CONFIG,
- **memdf.report.REPORT_BY_CONFIG,
- **memdf.report.OUTPUT_CONFIG,
- }, argv)
- dfs: DFs = memdf.collect.collect_files(config)
- symbols = dfs[SymbolDF.name]
- summary = memdf.select.groupby(config, symbols)
- memdf.report.write_dfs(config, {SymbolDF.name: summary})
- except Exception as exception:
- raise exception
- return status
- if __name__ == '__main__':
- sys.exit(main(sys.argv))
|