Python 中 cprofile 性能监视

发布于 2022-12-27 21:59:32 字数 1606 浏览 61 评论 0

#!/usr/bin/env python
# -*-coding:UTF-8-*-
# @Time: 2017/7/4 14:16
# @Author: en:zhu jin
# @File: performanceanalyse.py
# Description: None

import sys

from cProfile import Profile
import pstats

# class Profile_Decorator(object):
#     def __init__(self,out_file, fn):
#         self.fn = fn
#         if out_file is None or out_file == "":
#             out_file = r"D:\result.out"
#         self.out_file = out_file
#     def __call__(self,*args,**kwargs):
#         prof = Profile()
#         result = prof.runcall(self.fn,args,kwargs)
#         prof.dump_stats(self.out_file)
#         p = pstats.Stats(self.out_file)
#         p.strip_dirs().sort_stats(-1).print_stats()


def Profile_Decorator(out_file=r'D:\result.out'):
    def wrapper(fn):
        def fun(*args, **kw):
            prof = Profile()
            result = prof.runcall(fn,*args,**kw)
            prof.dump_stats(out_file)
            p = pstats.Stats(out_file)
            p.strip_dirs().sort_stats(-1).print_stats()
            return result
        return fun
    return wrapper

@Profile_Decorator()
def test(*args,**kwargs):
    return args

@Profile_Decorator()
def test2(args1,args2):
    return args1 + args2


def  ParamAssign (Func):
    def AddedProc (*args,**kwds):
        res = Func(*args,**kwds)
        return res
    return AddedProc

@ParamAssign
def Proc (input1,input2):
    print('processing, input: '+input1+', input2: '+input2)

if __name__ == '__main__':
    Proc('234','32423')
    print test(200,100,120)
    print test2(100,134)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

娇女薄笑

文章 0 评论 0

biaggi

文章 0 评论 0

xiaolangfanhua

文章 0 评论 0

rivulet

文章 0 评论 0

我三岁

文章 0 评论 0

薆情海

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文