在每个任务中分析 python Fabric 命令

Posted

技术标签:

【中文标题】在每个任务中分析 python Fabric 命令【英文标题】:Profiling python fabric commands in each task 【发布时间】:2015-09-28 07:04:18 【问题描述】:

如何分析 python 结构?我需要知道任务中哪个命令花费的时间最多。

假设我有一个 fabfile.py,它有 1 个任务。要执行此操作,它会通过 ssh 传递 10 个命令。当我运行时,它应该输出每个命令所花费的时间并对其进行排序。

我搜索了织物文档。没有找到任何方法来编写插件/钩子等。

【问题讨论】:

【参考方案1】:

你可以使用time

对于任务级别的持续时间:

$time fab command

对于命令级持续时间time 可以注入到任务定义中:

def status():
""" Is our app live? """
sudo("time forever list")

除此之外可以修饰琐碎的持续时间

    from timeit import default_timer as timer

    start = timer()
    # ...run('run a command')
    end = timer()
    print(end - start)

fabric wiki 和项目对此几乎没有任何支持,但将是一个令人兴奋的开发插件。

【讨论】:

time 不会提供我想要的。它只会提供命令的总持续时间。但我正在寻找一个简单的分析器。现在我正在使用自定义装饰器执行此操作。这样我只能在任务级别计时,但我想在命令级别进行。 -1。 time 太粗粒度了。一个好的解决方案应该提供在每个功能(或每个任务)基础上花费的时间细分

以上是关于在每个任务中分析 python Fabric 命令的主要内容,如果未能解决你的问题,请参考以下文章

在 Ruby on Rails 应用程序/内存泄漏中分析延迟作业任务

在任务管理器和 ANTS 分析器中分析的内存使用情况

在 python 中分析自我和参数?

使用 cProfile 在 Python 中分析类的方法?

在 Emacs 中分析 shell 命令

使用 Valgrind 在 Python 程序中分析内存时遇到问题