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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 344b07683a4d5d8eb7db569db39a4eb54d21f8dd44876624f88f60f9d77cf1b1 |
|
MD5 | 11a0fb1494180c7510703fd03b91bc49 |
|
BLAKE2b-256 | 76ab0b9e4eca5b3ad1207d387625dfc7e4bd4aeef06498efe9966f0fca5550f1 |
关闭
os_signpost-0.0.3-cp310-cp310-macosx_11_0_arm64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c0dd7eb7de2aa5cfe9d2c3eae05c3b265a6a21c51e2e5d0a9c151eca3605d7c4 |
|
MD5 | a264d69cb92de1212f584263abd8e2ed |
|
BLAKE2b-256 | e2a61d227aa34e7d0759b004dc9d72fadee5f9d25ba3ca731f59b09a9df15357 |
关闭
os_signpost-0.0.3-cp310-cp310-macosx_10_9_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d6f36ab8f7a21d42b65b06362bfc2f48e66e4a66b8828e0d23d997733c6d8bdc |
|
MD5 | 2f59cbacd613403b8d74c37e801b1378 |
|
BLAKE2b-256 | 0ad4b53c353e5f404dac60b210f9cdebc600f4cd655a71c1744dc1a87d93f600 |
关闭
os_signpost-0.0.3-cp39-cp39-macosx_11_0_arm64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1750471bb8588b22b00936d95000d9533596359988c8eb9643cd35a6df92c25c |
|
MD5 | ba969c6a1ca35be772e5b3f1642faf74 |
|
BLAKE2b-256 | 98161a0ed9a4d47ac94f3a6906500684618449041a278b9ef664439bc2380acd |
关闭
os_signpost-0.0.3-cp39-cp39-macosx_10_9_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 75c95a7aa717e3de8c4abdb7f3e87e3f596e434979ae9927cb9d5cf04f4ff3e3 |
|
MD5 | 3fb886868ffdd3463fd24506594a801e |
|
BLAKE2b-256 | ce5e251c9b329feacb4b431d1b63f71645d8ba1142a10906b742a759db336f6c |
关闭
os_signpost-0.0.3-cp38-cp38-macosx_11_0_arm64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0db652de691066a56b6a8043431a08b485ea165e7eb8b1e490b4adf6c9502ad0 |
|
MD5 | 2002205192141d2a58d35861d8151ca6 |
|
BLAKE2b-256 | 7c487f52e6d06895edeb5556de05b509642b4f48b452e112673ec9dbcbac768e |
关闭
os_signpost-0.0.3-cp38-cp38-macosx_10_9_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3d1af4dbcef29efcb8093f456eaeef82e3d20fd5833ed6bbd86ea6753969dfb2 |
|
MD5 | e2dd295cc5dc579fa8a840f92d85cda1 |
|
BLAKE2b-256 | ab5ca24dfa5be4cc68d84cae835358aa6f144d08ee77f2cdb9ca7cdcae7cc491 |
关闭
os_signpost-0.0.3-cp37-cp37m-macosx_10_9_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8e1aa856fe40a04874c2c7e3948e81a88238fe67a01e106ffdcd9f7757dfa235 |
|
MD5 | 10f9c3b415a9abd111a48d096b442c15 |
|
BLAKE2b-256 | 9fcf21a3c60352587ec8acaddb18e6b8e583b896442fe326feb5c268e973cdbf |