ugc工具跟踪包括Java、Python、Ruby和Node在内的高级语言中的垃圾回收事件。如果可用,每个GC事件都会附带打印一些由该语言的运行时提供的附加信息。同时还会提供GC事件的持续时间。
- #!/usr/bin/python
-
- from __future__ import print_function
- import argparse
- from bcc import BPF, USDT, utils
- import ctypes as ct
- import time
- import os
-
- languages = ["java", "node", "python", "ruby"]
-
- examples = """examples:
- ./ugc -l java 185 # trace Java GCs in process 185
- ./ugc -l ruby 1344 -m # trace Ruby GCs reporting in ms
- ./ugc -M 10 -l java 185 # trace only Java GCs longer than 10ms
- """
- parser = argparse.ArgumentParser(
- description="Summarize garbage collection events in high-level languages.",
- formatter_class=argparse.RawDescriptionHelpFormatter,
- epilog=examples)
- parser.add_argument("-l", "--language", choices=languages,
- help="language to trace")
- parser.add