让 cProf 只给出 10 个最耗时的任务或按时间倒序排序

     2023-03-06     197

关键词:

【中文标题】让 cProf 只给出 10 个最耗时的任务或按时间倒序排序【英文标题】:Making cProf give only the 10 most time-consuming tasks or sort them by time in reverse order 【发布时间】:2017-12-15 17:16:49 【问题描述】:

我正在我的终端上运行以下代码行来获取我的程序的配置文件。

python3 -m cProfile -s time  main.py

但是它打印的输出是巨大的。我只想知道最耗时的 10 个任务或按升序排序。我该如何告诉 cprof?

【问题讨论】:

【参考方案1】:

我在this 其他答案中找到了解决方案。解决方案是在要分析的脚本内内部使用 cProfile,而不是在命令行外部使用。

我的脚本如下所示:

def run_code_to_be_profiled():
    pass

if __name__ == "__main__":
    import cProfile

    pr = cProfile.Profile()
    pr.enable()

    run_code_to_be_profiled()

    pr.disable()
    pr.print_stats(sort='time')

我运行脚本并获得有用的输出。

【讨论】:

【参考方案2】:

要打印名为“function_to_profile”的函数的 10 个最耗时的任务,您可以运行以下命令:

if __name__ == "__main__":
    import cProfile
    from pstats import Stats

    pr = cProfile.Profile()
    pr.enable()

    function_to_profile()

    pr.disable()
    stats = Stats(pr)
    stats.sort_stats('tottime').print_stats(10)

【讨论】:

【参考方案3】:

试试 python3 -m cProfile -s cumtime main.py

【讨论】:

这将根据累积时间但按降序打印配置文件。我认为米哈伊尔写道,只有通过内部解决方案才能调用 Stats 类。 docs.python.org/3/library/profile.html

020异步任务(代码片段)

...们常常会创建一些异步任务,我们最大的想法就是不想让耗时的任务阻塞我们方法的运行. 二.使用方式  在springboot之中使用异步任务变得非常的简单,我们只需要两步就能完成[1]开启异步[2]定义异步方法下面看看我们的一个... 查看详情

eclipse中10个最有用的快捷键组合

1.ctrl+shift+r:打开资源   这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非... 查看详情

10个最热门的大数据技术

...受欢迎?哪些大数据技术潜力巨大?请听大讲台老师对10个最热门的大数据技术的介绍。 大数据学习群:199427210(一)预测分析预测分析是一种统计或数据挖掘解决方案,包含可在结构化和非结构化数据中使用以确定未来结... 查看详情

微服务架构10个最重要的设计模式

自从软件开发的早期(1960年代)以来,解决大型软件系统中的复杂性一直是一项艰巨的任务。多年来,软件工程师和架构师为解决软件系统的复杂性进行了许多尝试:DavidParnas的模块化和信息隐藏(1972),EdsgerW.Dijkstra的关注分离(1974)... 查看详情

jspromiseapi

...作;坏处就是容易造成阻塞,因为队列中如果有一个任务耗时比较长,那么后面的任务都无法快速执行,或导致页面卡在某个状态上,给用户的体验很差。一直以来,JavaScript处理异步都是以 查看详情

jspromiseapi

...作;坏处就是容易造成阻塞,因为队列中如果有一个任务耗时比较长,那么后面的任务都无法快速执行,或导致页面卡在某个状态上,给用户的体验很差。一直以来,JavaScript处理异步都是以 查看详情

贪吃蛇游戏

1)博客开头给出自己的基本信息,格式建议如下:  学号:2017035107004   姓名:滕坤   码云仓库:2)给出你的各项任务完成时间估算与实际消耗时间表。    估算    实际时间  计划要... 查看详情

10个最省时间的pycharm技巧

?工作中最常用的PyCharm使用技巧,使用之后可以给我们节约一些完全不必要浪费的时间。帮助大家成为了一名PyCharm老司机。加vx:tanzhouyiwan或qq群813622576免费领取学习资料#0.PyCharm常用快捷键??#1.查看使用库源码?PyCharm主程序员在Stack... 查看详情

asynctask原理(代码片段)

...以及响应用户的操作,让工作者线程在后台执行一些比较耗时的任务。Android中的工作者线程主要有AsyncTask、IntentService、HandlerThread,它们本质上都是对线程或线程池的封装。AsyncTask是一个抽象类,它是由Android封装的一个轻量级... 查看详情

什么是nio

...过程优化提高吞吐量。NIO:将任务拆分为多个步骤,即将耗时处理的步骤和非耗时的任务分开,然后处理时每个线程不再负责接待请求的全部处理周期,而是只负责一 查看详情

Android:长按时突出显示段落中的句子

】Android:长按时突出显示段落中的句子【英文标题】:Android:HighlightASentenceinParagraphWhenLongClicked【发布时间】:2018-03-2105:37:30【问题描述】:我知道我们可以让textView可点击。当有人在WebView上打开一篇新闻文章并长按段落中的一... 查看详情

10个最适合开发nft的区块链

鉴于当今区块链的多样性,选择最适合作为NFT活动基础的区块链变得越来越难。但是,在开发NFT或NFT平台之前,我们需要考虑某些标准,包括交易成本、智能合约功能、共识机制和交易速度等。用自己熟悉的语言... 查看详情

linux的10个最危险的命令

rm-rf命令删除文件夹及其内容最快的方式之一。:():|:&;:命令,这就是fork炸弹的实例 具体操作是通过定义一个名为‘:’的函数,它会调用自己两次,一次在前台另一次运行在后台,它会反复的执行下去直到系统崩溃。命... 查看详情

tornado异步阻塞解决方案

在tornado中异步无阻塞的执行耗时任务在 linux 上tornado是基于epoll的事件驱动框架,在网络事件上是无阻塞的。但是因为tornado自身是单线程的,所以如果我们在某一个时刻执行了一个耗时的任务,那么就会阻塞在这里,无... 查看详情

在windows中啥是计划任务?

我想问的是“计划任务”在Windows中的概念是什么?这是个考试题~希望大家帮帮我~谢谢大家了~~!利用“任务计划”,可以将任何脚本、程序或文档安排在某个最方便的时间运行。“任务计划”在每次启动WindowsXP的时候启动并在... 查看详情

这个asp.net快速开发平台,真的可以让你按时下班把妹撩?

从事软件行业也有几年了,软件行业的发展,可以说是日新月异。从中也学到了不少知识,每天都在丰富自己。但是,软件行业大多都有一个通病——加班,加班不单是员工的烦恼,也是公司的毒瘤。大工作量,造成了加班这一... 查看详情

人才的评定标准

...能力评估的咨询合作,今天也分享给大家: 初级:在给出指导和具体实施细节后,能独立按时按量(数量和质量)完成工作。中级:不用指导和具体实施细节,能独立的按时按量(数量和质量)完成工作。高级:解难题(能... 查看详情

让 Airflow 表现得像 Luigi:如果任务的输出只需要获得一次,如何防止任务在 DAG 的未来运行中重新运行?

】让Airflow表现得像Luigi:如果任务的输出只需要获得一次,如何防止任务在DAG的未来运行中重新运行?【英文标题】:makingAirflowbehavelikeLuigi:howtopreventtaskstobere-runinfuturerunsofaDAGiftheiroutputwasnecessarytobeobtainedonlyonce?【发布时间】:202... 查看详情