剖面
Profiler集成提供了一个配置文件,该配置文件是一组统计信息,可以识别家庭助理的每个部分所花费的时间。必威是什么它可以帮助追踪性能问题或提供有关行为不当集成的见解。
配置
可以通过使用此my按钮将profile必威体育存款r添加到您必威是什么的家庭助理实例中:
服务profiler.start
启动指定秒数的分析器。
服务数据属性 | 选修的 | 描述 |
---|---|---|
秒 |
是的 | 运行配置文件的秒数。默认为60.0 |
配置文件完成后,Profiler将生成PythonCPROF
和callgrind.out
在您的配置目录中文件。这些文件的确切路径将出现在持续的通知中,因此可以轻松地将其放置并复制到您的桌面上。
这CPROF
可以查看文件:
此外,探查者将生成一个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: