剖面


Profiler集成提供了一个配置文件,该配置文件是一组统计信息,可以识别家庭助理的每个部分所花费的时间。必威是什么它可以帮助追踪性能问题或提供有关行为不当集成的见解。

配置

可以通过使用此my按钮将profile必威体育存款r添加到您必威是什么的家庭助理实例中:

手动配置步骤

服务profiler.start

启动指定秒数的分析器。

服务数据属性 选修的 描述
是的 运行配置文件的秒数。默认为60.0

配置文件完成后,Profiler将生成PythonCPROFcallgrind.out在您的配置目录中文件。这些文件的确切路径将出现在持续的通知中,因此可以轻松地将其放置并复制到您的桌面上。

CPROF可以查看文件:

Snakevizgprof2dot

此外,探查者将生成一个callgrind.out可以查看的文件:

Kcachegrind或Qcachegrind

服务Profiler.Memory

启动指定秒数的内存剖面。

服务数据属性 选修的 描述
是的 运行配置文件的秒数。默认为60.0

记忆配置文件完成后,Profiler将生成一个.hpy在您的配置目录中文件。这些文件的确切路径将出现在持续的通知中,因此可以轻松地将其放置并复制到您的桌面上。

hpy可以使用任何文本编辑器查看文件。可以使用Heapy配置文件浏览器这是Guppy3软件包的一部分,可以通过以下脚本启动:

#!/usr/bin/python3孔雀鱼进口hpyhpy()。pb()

服务profiler.start_log_objects

开始记录内存中对象的生长。

服务数据属性 选修的 描述
scan_interval 是的 记录对象之间的频率。默认为30.0

定期记录内存中新对象的生长。该服务的主要用例是查找内存泄漏。

服务profiler.stop_log_objects

停止记录内存中对象的生长。

服务profiler.dump_log_objects

服务数据属性 选修的 描述
类型 将对象转移到日志的类型。

什么时候start_log_objects强调内存中对象集合的增长,该服务可以帮助调查。这ret匹配的每个对象类型将被记录。

服务profiler.log_thread_frames

为了帮助发现跑步线程,为什么执行人被超载或其他线程问题,当调用此服务时,将记录每个运行线程的当前帧。

一个示例如下:

[homeassistant.components.profiler]线程[syncworker_6]:文件“/usr/local/lib/python3.8/threading.py.py”,第890行,in _bootstrap self.__bootstrap self._bootstrap_inner().8/threading.py“,第932行,在_bootstrap_inner self.run()文件中” /USR/local/lib/lib/python3.8/threading.py.py”,第870行,在运行self._target(*self._args,** self._kwargs)文件“/usr/local/lib/python3.8/concurrent/futures/futures/thread.py”,第80行,in _worker work_item.run()文件“/usr/local/local/lib/lib/python3.83.883.83.883.83.883.883.83.8/concurrent/futures/thread.py”,第57行,在运行结果= self.fn(*self.args,** self.kwargs)文件“/usr/src/homeassistant/homeassistant/homeassistant/homeassistant/components/components/samsungtv/samsungtv/media_player.py.py.py.py.py.py“,第139行,在更新self._state = state_on中,如果self._bridge.is_on()else state_off文件“/usr/src/homeassistant/homeassistant/homeassistant/components/components/samsungtv/bridge.py.py”,第72行,IS_ON返回自我。_get_remote()不是没有文件“/usr/src/homeassistant/homeassistant/components/components/samsungtv/bridge.py”,第274行,在_get_remote self._remote._remote.open.open()ib/python3.8/site-packages/samsungtvws/remote.py”,第146行,在open self.connection = websocket.create_connection(file“/usr/local/lib/lib/lib/python3.8/site-packages/site-packages/websockes/websocke/_core/_core-。袜子,addrs = connect(url,self.sock_opt,proxy_info(** options),文件“/usr/local/lib/lib/python3.8/site-packages/websockes/websocket/_http.py”,第120行,在Connect Sock =_open_socket(addrinfo_list,options.sockopt,options.timeout)文件“/usr/local/lib/lib/python3.8/site-packages/websocket/websocket/_http.py”,第170行,在_open_socket sock.connect sock.connect(地址)中

服务profiler.log_event_loop_scheduled

记录事件循环中计划的内容。这可能有助于跟踪集成,这些集成在家庭助手停止或没有足够锁定时不会停止听众以避免在上一个更新完成之前安排更新。必威是什么

每个即将到来的计划项目的记录都类似于以下示例:

[homeassistant.components.profiler] Scheduled: .run_action(>>) at/USR/SRC/homeassistant/homeassistant/helpers/event.py:1175>

Baidu