支持外部分析器
该页面正在翻译中。 |
Julia为一些外部跟踪分析器提供了显式支持,它允许您获取有关运行时环境行为的一般信息。
目前支持以下分析器:
添加新区域
宏’JL_TIMING’用于添加新区域。 要在代码库中查找示例,请搜索’JL_TIMING'。 要添加新的区域类型,请将其添加到’JL_TIMING_OWNERS'(可能还有`JL_TIMING_EVENTS')。
动态激活和停用区域
环境变量 'JULIA_TIMING_SUBSYSTEMS'允许您启用或禁用特定Julia启动的区域。 例如,当将变量值设置为'+GC,-INFERENCE`时,将启用`GC’区域,并禁用’INFERENCE’区域。
特蕾西分析仪
https://github.com/wolfpld/tracy [Tracy]是一个灵活的分析器,可以与Julia进一步集成。
安装Tracy配置文件查看器
获取配置文件查看器的最简单方法是添加’TracyProfiler_jll’包并运行分析器,如下所示:
run(TracyProfiler_jll.tracy())
在macOS中,如果分析器中的用户界面元素看起来过大,则可以将环境变量"TRACY_DPI_SCALE"设置为"1.0"。 |
要在没有将跟踪保存到磁盘的用户界面的情况下运行实例,请使用
run(`$(TracyProfiler_jll.capture()) -o mytracefile.tracy`)
而不是她。
有关使用Tracy用户界面的信息,请参阅Tracy手册。
使用特蕾西分析朱莉娅
使用Tracy分析Julia的标准工作流程涉及使用环境变量运行Julia。:
JULIA_WAIT_FOR_TRACY=1 ./julia -e '...'
环境变量确保Julia将等待与Tracy分析器的成功连接,然后继续执行。 之后,在Tracy profiler的用户界面中,单击"连接"。 Julia执行应该恢复,并且应该开始分析。
使用Tracy分析包的预编译
要分析包的预编译过程,最简单的方法是显式调用`Base。compilecache’与需要预编译的包。:
pkg = Base.identify_package("SparseArrays")
withenv("JULIA_WAIT_FOR_TRACY" => 1, "TRACY_PORT" => 9001) do
Base.compilecache(pkg)
end
在这里,我们使用Tracy的自定义端口,以便更轻松地在Tracy用户界面中找到要连接的正确客户端。
向区域添加元数据
要将行(或行)添加到区域,可以使用各种函数`jl_timing_show_*`和`jl_timing_printf'。 例如,输出的跟踪区域显示正在输出的方法的实例。
使用’TracyCZoneColor’功能,您可以设置特定区域的颜色。 查看代码库以了解它是如何使用的。