跳转到主要内容

macOS signpost API包装器

项目描述

os-signpost

macOS提供了用于测量程序中任务持续时间或标记事件的OSSignposter API。这些所谓的标记可以在Instruments.app应用程序中进行可视化。此Python包为OSSignposter API提供了包装器,以便您可以在Python应用程序中标记任务和事件。

⏳ 安装

确保您已安装Xcode,然后使用pip进行安装

pip install os-signpost

🚀 快速入门

创建一个Signposter

Signposter是此包的主要类。您应该创建一个Signposter的实例来发出事件。您可以如下创建一个实例:

from os_signpost import Signposter
signposter = Signposter("com.example.my_subsystem", Signposter.Category.DynamicTracing)

构造函数的第一个参数是子系统的名称,通常是您组织的名称后跟子系统的名称。第二个参数是在子系统内的类别。系统使用类别来过滤事件。有三个可用的预定义类别:

  • Category.PointsOfInterest:具有此类别的标记始终启用。《兴趣点》仪器显示此类别的标记。
  • Category.DynamicTracing:只有在使用性能工具(如Instruments.app)记录时,具有此类别的标记才启用。创建一个筛选子系统名称的os_signpost仪器,以可视化DynamicTracing标记。
  • Category.DynamicStackTracing:这个类别的行为类似于 DynamicTracing,但还会记录回溯。

为任务持续时间设置路标

要测量任务的持续时间,您可以创建标记区间的路标。Signposter.begin_interval 方法添加一个标记区间开始的路标并返回一个回调。然后,此回调标记区间的结束

end_interval = signposter.begin_interval("begin my task")
# The task for which you want to measure the duration.
end_interval("end my task")

begin_interval 方法和回调都接受一个消息。Instruments.app 将这些消息包含在可视化中,并允许您根据消息对区间进行分类。如果未指定区间结束的消息,则将使用与开始相同的消息。

您还可以使用 Signposter.use_interval 上下文管理器来替代回调方法

with signposter.use_interval("begin my task", "end my task"):
    # The task for which you want to measure the duration.

use_interval 将开始和结束消息作为其参数。对于上下文管理器,结束消息也是可选的。

触发事件

除了标记区间外,您还可以触发事件路标。Instruments.app 将事件显示为单个点。Signposter.emit_event 方法可以触发事件

signposter.emit_event("lp0 on fire")

🙈 限制

macOS 路标 API 还允许将名称与路标关联。但是,此名称必须是一个 C 字符串字面量。因此,我们硬编码了路标的名称 python

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。

源分布

os-signpost-0.0.3.tar.gz (5.3 kB 查看哈希)

上传时间

构建分布

os_signpost-0.0.3-cp310-cp310-macosx_11_0_arm64.whl (33.9 kB 查看哈希)

上传时间 CPython 3.10 macOS 11.0+ ARM64

os_signpost-0.0.3-cp310-cp310-macosx_10_9_x86_64.whl (35.0 kB 查看哈希)

上传时间 CPython 3.10 macOS 10.9+ x86-64

os_signpost-0.0.3-cp39-cp39-macosx_11_0_arm64.whl (33.6 kB 查看哈希)

上传时间 CPython 3.9 macOS 11.0+ ARM64

os_signpost-0.0.3-cp39-cp39-macosx_10_9_x86_64.whl (34.7 kB 查看哈希)

上传时间 CPython 3.9 macOS 10.9+ x86-64

os_signpost-0.0.3-cp38-cp38-macosx_11_0_arm64.whl (33.6 kB 查看哈希)

上传时间 CPython 3.8 macOS 11.0+ ARM64

os_signpost-0.0.3-cp38-cp38-macosx_10_9_x86_64.whl (34.4 kB 查看哈希值)

上传时间 CPython 3.8 macOS 10.9+ x86_64

os_signpost-0.0.3-cp37-cp37m-macosx_10_9_x86_64.whl (34.1 kB 查看哈希值)

上传时间 CPython 3.7m macOS 10.9+ x86_64

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面