zoukankan      html  css  js  c++  java
  • python性能分析--cProfile

    Python标准库中提供了三种用来分析程序性能的模块,分别是cProfile, profile和hotshot,另外还有一个辅助模块stats。这些模块提供了对Python程序的确定性分析功能,同时也提供了相应的报表生成工具,方便用户快速地检查和分析结果

    cProfile:基于lsprof的用C语言实现的扩展应用,运行开销比较合理,适合分析运行时间较长的程序,推荐使用这个模块;

    使用cProfile分析的结果可以输出到指定的文件中,但是文件内容是以二进制的方式保存的,用文本编辑器打开时乱码。所以,Python提供了一个pstats模块,用来分析cProfile输出的文件内容。它支持多种形式的报表输出,是文本界面下一个较为实用的工具。使用非常简单:(可以查看官方文档)

    from openpyxl import load_workbook
    
    
    def do_work():
        wb = load_workbook(filename=u'province_city.xlsx')
        sheetnames = wb.get_sheet_names()
        ws = wb.get_sheet_by_name(sheetnames[0])
        result = {}
        for rx in range(2, ws.max_row + 1):
            province = ws.cell(row=rx, column=1).value
            citys = [ws.cell(row=rx, column=col).value for col in range(2, ws.max_column) if
                     ws.cell(row=rx, column=col).value]
            print(province)
            if province:
                result[province] = citys
        print(result)
        with open('province_city.json', 'w', encoding='utf-8') as f:
            json.dump(result, f, ensure_ascii=False)
    
    
    cProfile.run('do_work()', 'restats')
    p = pstats.Stats('restats')
    p.strip_dirs().sort_stats('time').print_stats()
    

      

    输出结果:

    学习技术交流群:226704167,愿和各位一起进步! 

     
  • 相关阅读:
    NVIDIA Jetson TX2刷机
    安装python2和3在centos7里面的问题
    js和DOM结合实现评论功能 (可以添加,删除)
    js实现计时
    js获取星期日期
    js登录界面演示
    下拉列表演示
    html表单练习
    一个底层w32汇编的小例子,演示 原创
    invoke和call的区别
  • 原文地址:https://www.cnblogs.com/lip0121/p/7676826.html
Copyright © 2011-2022 走看看