asyncio 监视器

MicroPython相关代码、库、软件、工具
回复
头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

asyncio 监视器

#1

帖子 shaoziyang »

提供了一种检查运行系统行为的方法。它最初设计用于描述uasyncio程序的特性,但也可用于研究行为可能动态变化的任何代码,如线程代码或使用中断的应用程序。

被测设备(DUT)连接到一个树莓Pico。后者通过引脚变化和可选打印语句显示DUT的行为。逻辑分析器或作用域提供代码实时行为的视图。也可以通过Pico命令行收集有价值的信息。

当应用程序运行多个并发任务时,可能很难识别占用CPU时间的任务。当多个任务在一段时间内阻塞每个任务时,也会出现较长的阻塞周期。如果这些事件是连续安排的,时间会增加:这可能发生在不可预测的、不频繁的时间间隔。为了捕获这些事件,监视器在阻塞周期超过阈值时发出触发脉冲。阈值可以是固定时间或当前最大阻塞周期。逻辑分析仪能够检查瞬态事件时的状态。

此图显示检测到CPU占用。在本例中,任务占用CPU 500毫秒,导致调度程序无法调度其他任务。触发脉冲在hogging开始后由Pico 100ms产生。


图片

代码: 全选

import monitor
trig1 = monitor.trigger(1)  # Create a trigger on ident 1

async def test():
    while True:
        await asyncio.sleep_ms(100)
        trig1()  # Pulse appears now
https://github.com/peterhinch/micropython-monitor

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章