projects
/
python_utils.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
7c09ecd
)
Add --trace_memory to bootstrap.
author
Scott
<
[email protected]
>
Thu, 27 Jan 2022 19:03:36 +0000
(11:03 -0800)
committer
Scott
<
[email protected]
>
Thu, 27 Jan 2022 19:03:36 +0000
(11:03 -0800)
bootstrap.py
patch
|
blob
|
history
diff --git
a/bootstrap.py
b/bootstrap.py
index 1b4d4843332effc7683bcbd20a7f9a1432cc299e..e50cb386543aaef66fdd36cb9c149fbf009ef5ae 100644
(file)
--- a/
bootstrap.py
+++ b/
bootstrap.py
@@
-57,6
+57,12
@@
args.add_argument(
default=False,
help='Should we run cProfile on this code?',
)
default=False,
help='Should we run cProfile on this code?',
)
+args.add_argument(
+ '--trace_memory',
+ action=ActionNoYes,
+ default=False,
+ help='Should we record/report on memory utilization?',
+)
original_hook = sys.excepthook
original_hook = sys.excepthook
@@
-221,11
+227,25
@@
def initialize(entry_point):
else:
config.parse(None)
else:
config.parse(None)
+ if config.config['trace_memory']:
+ import tracemalloc
+
+ tracemalloc.start()
+
# Initialize logging... and log some remembered messages from
# config module.
logging_utils.initialize_logging(logging.getLogger())
config.late_logging()
# Initialize logging... and log some remembered messages from
# config module.
logging_utils.initialize_logging(logging.getLogger())
config.late_logging()
+ # Maybe log some info about the python interpreter itself.
+ logger.debug(
+ f'Platform: {sys.platform}, maxint=0x{sys.maxsize:x}, byteorder={sys.byteorder}'
+ )
+ logger.debug(f'Python interpreter version: {sys.version}')
+ logger.debug(f'Python implementation: {sys.implementation}')
+ logger.debug(f'Python C API version: {sys.api_version}')
+ logger.debug(f'Python path: {sys.path}')
+
# Allow programs that don't bother to override the random seed
# to be replayed via the commandline.
import random
# Allow programs that don't bother to override the random seed
# to be replayed via the commandline.
import random
@@
-265,6
+285,14
@@
def initialize(entry_point):
logger.debug(f'{entry_point.__name__} (program entry point) returned {ret}.')
logger.debug(f'{entry_point.__name__} (program entry point) returned {ret}.')
+ if config.config['trace_memory']:
+ snapshot = tracemalloc.take_snapshot()
+ top_stats = snapshot.statistics('lineno')
+ print()
+ print("--trace_memory's top 10 memory using files:")
+ for stat in top_stats[:10]:
+ print(stat)
+
if config.config['dump_all_objects']:
dump_all_objects()
if config.config['dump_all_objects']:
dump_all_objects()