• 分析python代码性能的程序分析包cProfile


    方法:

    def f1(lIn):
        l1 = sorted(lIn)
        l2 = [i for i in l1 if i<0.5]
        return [i*i for i in l2]
    def f2(lIn):
        l1 = [i for i in lIn if i<0.5]
        l2 = sorted(l1)
        return [i*i for i in l2]
    def f3(lIn):
        l1 = [i*i for i in lIn]
        l2 = sorted(l1)
        return [i for i in l1 if i<(0.5*0.5)]
    
    import random
    import cProfile
    lIn = [random.random() for i in range(100000)]
    cProfile.run('f1(lIn)')
    cProfile.run('f2(lIn)')
    cProfile.run('f3(lIn)')

    结果:

    D:PythonPython38python.exe D:/python_learn/lambda_test/test.py
             7 function calls in 0.036 seconds
    
       Ordered by: standard name
    
       ncalls  tottime  percall  cumtime  percall filename:lineno(function)
            1    0.002    0.002    0.036    0.036 <string>:1(<module>)
            1    0.000    0.000    0.034    0.034 test.py:118(f1)
            1    0.011    0.011    0.011    0.011 test.py:120(<listcomp>)
            1    0.006    0.006    0.006    0.006 test.py:121(<listcomp>)
            1    0.000    0.000    0.036    0.036 {built-in method builtins.exec}
            1    0.017    0.017    0.017    0.017 {built-in method builtins.sorted}
            1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
    
    
             7 function calls in 0.018 seconds
    
       Ordered by: standard name
    
       ncalls  tottime  percall  cumtime  percall filename:lineno(function)
            1    0.001    0.001    0.018    0.018 <string>:1(<module>)
            1    0.000    0.000    0.017    0.017 test.py:122(f2)
            1    0.005    0.005    0.005    0.005 test.py:123(<listcomp>)
            1    0.003    0.003    0.003    0.003 test.py:125(<listcomp>)
            1    0.000    0.000    0.018    0.018 {built-in method builtins.exec}
            1    0.008    0.008    0.008    0.008 {built-in method builtins.sorted}
            1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
    
    
             7 function calls in 0.031 seconds
    
       Ordered by: standard name
    
       ncalls  tottime  percall  cumtime  percall filename:lineno(function)
            1    0.003    0.003    0.031    0.031 <string>:1(<module>)
            1    0.000    0.000    0.029    0.029 test.py:126(f3)
            1    0.007    0.007    0.007    0.007 test.py:127(<listcomp>)
            1    0.005    0.005    0.005    0.005 test.py:129(<listcomp>)
            1    0.000    0.000    0.031    0.031 {built-in method builtins.exec}
            1    0.017    0.017    0.017    0.017 {built-in method builtins.sorted}
            1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
    
    
    
    Process finished with exit code 0
  • 相关阅读:
    python之private variable
    python实例、类方法、静态方法
    python常用option
    access
    FD_CLOEXEC
    fork后父子进程文件描述问题
    split
    信号
    kill
    进程组&Session
  • 原文地址:https://www.cnblogs.com/sewen-H/p/13675148.html
Copyright © 2020-2023  润新知