用于机器学习应用的时间和内存跟踪任务管理器
Syllabus的Python项目详细描述
教学大纲
用于机器学习应用程序的时间和内存跟踪任务管理器
依赖关系
- Python3
- 打印
- 回答
要求
- 66列的最小终端宽度
- ANSI颜色支持
用法
任务类
Task
类是Syllabus
的核心。任何程序中都只能从头开始创建一个任务;所有其他任务都应该使用subtask
从该任务派生出来。
参数
name
:str;任务名称desc
:str;任务描述mp
:bool;如果应该启用多处理,则为true。这将创建一个多处理托管队列,允许该队列与其他进程共享;但是,此操作需要创建一个专用进程,并且内存开销很大。因此,除非要使用多处理,否则不应启用mp
标志。
核心方法
start(name=None, desc=None)
:启动任务(设置开始时间)。如果名称或说明不是“无”,则更新任务的名称和说明。done(*objects, name=None, desc=None, nowait=False)
:将任务标记为已完成(设置结束时间)。name
,desc
:名称和描述;如果没有,则更新名称和描述。*objects
:对象列表。添加对象的内存足迹,并将其存储以跟踪内存使用情况。nowait
:仅当任务是根任务时才考虑。如果nowait设置为true,程序将立即继续;如果nowait设置为false,则方法将阻塞,直到任务的会计处理完所有消息。
subtask(name='Child Task', desc=None) -> Task
:创建子任务。创建新任务时应始终使用此方法,因为它将父任务的报告队列传递给子任务。name
:子任务名称desc
:子任务描述
状态,报告
info(msg)
:发送消息;msg
可以是任意类型,只要msg
可以转换成带str()
)的字符串就可以了print(msg)
:别名info
error(e)
:发送错误。e
不一定是例外。warn(e)
:发送警告。e
不一定是警告。runtime() -> float
:获取当前运行时。status() -> (int, int)
:进度为(完成任务,总任务)progress() -> float
:进度为(完成任务/总任务)add_task(n)
:将n
任务添加到任务计数器add_progress(n)
:将附加的n
任务标记为已完成
多线程
pool(target, args, shared_args=[], shared_kwargs={}, reducer=None, recursive=True, split=2, name='Child Task Thread', threads=None, process=False)
:创建线程池。target
:目标函数args
:要传入的参数列表shared_args
,shared_kwargs
:要传递给所有线程的共享参数reducer(retval[])
:如果传递了函数,则用于合并结果。应接受结果列表(由target
返回)并返回组合结果。recursive
:递归减少?split
:如果recursive
,每减少多少个条目?name
:子任务默认名称threads
:线程数;如果None
,则使用cpu_count()
代替
多处理
pool(target, args, shared_args=None, shared_init=None, reducer=None, recursive=True, split=2, name='Child Task Process', cores=None)
:创建进程池。target
:目标函数args
:要传入的参数列表shared_args
:要传递给所有线程的共享参数shared_init
:共享参数的初始值设定项reducer(retval[])
:如果传递了函数,则用于合并结果。应接受结果列表(由target
返回)并返回组合结果。recursive
:递归减少?split
:如果recursive
,每减少多少个条目?name
:子任务默认名称cores
:核心数;如果None
,则使用cpu_count()
代替
应用程序
参数
- <里>
refresh_rate
:输出刷新率,单位为赫兹- 扩展
Task
;传递配置选项*args
和**kwargs
。 InteractiveTaskApp(*args, refresh_rate=20, **kwargs)
:更复杂的带有键盘控件的终端应用程序refresh_rate
:输出刷新率,单位为赫兹- 扩展
Task
;传递配置选项*args
和**kwargs
。
TaskViewer(file)
:保存任务树的查看器。file
:输入要打开和分析的文件名- 方法:
print()
:打印树(与BasicTaskApp
格式相同)save(file, color=False)
:将呈现的输出保存到文件file
:输出文件名color
:如果为false,则在保存之前删除ANSI转义序列
BasicTaskApp(*args, refresh_rate=20, **kwargs)
:带有更新输出的基本应用程序