5.39 BCC工具之uobjnew.py解读

时间:2024-03-09 09:45:38

一,工具简介

uobjnew工具统计了新的对象分配事件,并打印出统计信息,包括哪些对象类型被频繁分配,以及该类型已分配了多少字节。这有助于诊断常见的分配路径,而这些路径又可能会导致大量的垃圾回收。

二,代码示例

#!/usr/bin/python

from __future__ import print_function
import argparse
from bcc import BPF, USDT, utils
from time import sleep
import os

# C语言需要是最后学习的语言。
languages = ["c", "java", "ruby", "tcl"]

examples = """examples:
    ./uobjnew -l java 145         # summarize Java allocations in process 145
    ./uobjnew -l c 2020 1         # grab malloc() sizes and print every second
    ./uobjnew -l ruby 6712 -C 10  # top 10 Ruby types by number of allocations
    ./uobjnew -l ruby 6712 -S 10  # top 10 Ruby types by total size
"""
parser = argparse.ArgumentParser(
    description="Summarize object allocations in high-level languages.",
    formatter_class=argparse.RawDescriptionHelpFormatter,
    epilog=examples)
parser.a