1
2
3
4
5
6
7
8
9
10
|
import
profile
def
fun():
x
=
range
(
100000000
)
def
f():
s
=
xrange
(
100000000
)
profile.run(
'fun()'
)
profile.run(
'f()'
)
# xrange胜出
|
1.fun()的运行结果:
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 1.469 1.469 1.469 1.469 :0(range)
1 2.509 2.509 2.509 2.509 :0(setprofile)
1 0.711 0.711 2.181 2.181 <string>:1(<module>)
1 0.000 0.000 4.690 4.690 profile:0(fun())
0 0.000 0.000 profile:0(profiler)
1 0.000 0.000 1.469 1.469 test.py:22(fun)
2.f()的运行结果
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.000 0.000 :0(setprofile)
1 0.000 0.000 0.000 0.000 <string>:1(<module>)
1 0.000 0.000 0.000 0.000 profile:0(f())
0 0.000 0.000 profile:0(profiler)
1 0.000 0.000 0.000 0.000 test.py:25(f)
方案二测试:
1
2
3
4
5
6
7
8
9
10
11
12
|
import
profile
def
fun():
for
i
in
range
(
100000000
):
pass
def
f():
for
i
in
xrange
(
100000000
):
pass
profile.run(
'fun()'
)
profile.run(
'f()'
) #xrange 胜出
|
5 function calls in 3.214 seconds
1.fun()的运行结果:
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.928 0.928 0.928 0.928 :0(range)
1 0.471 0.471 0.471 0.471 :0(setprofile)
1 0.000 0.000 2.742 2.742 <string>:1(<module>)
1 0.000 0.000 3.214 3.214 profile:0(fun())
0 0.000 0.000 profile:0(profiler)
1 1.814 1.814 2.742 2.742 test.py:22(fun)
4 function calls in 1.446 seconds
2.f()的运行结果
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.000 0.000 :0(setprofile)
1 0.000 0.000 1.446 1.446 <string>:1(<module>)
1 0.000 0.000 1.446 1.446 profile:0(f())
0 0.000 0.000 profile:0(profiler)
1 1.446 1.446 1.446 1.446 test.py:26(f)