I'm a bit curious about how you do the timing. I think there is a flaw
in how you measured the time. I made this code and the result is
inconclusive.

## CODE: test.py
#!/usr/bin/env python

import imported
import time
from imported import *


def b():
    a = 1

r = range(5000000)
t_a, t_b, t_c, t_d = 1000, 1000, 1000, 1000
for n in xrange(20):
    # a - direct, no function call
    start = time.time()
    for _ in r:
        a = 1
    end = time.time()
    t_A = end - start

    # b - function call
    start = time.time()
    for _ in r:
        b()
    end = time.time()
    t_B = end - start

    # c - imported module
    start = time.time()
    for _ in r:
        imported.c()
    end = time.time()
    t_C = end - start

    # d - imported function
    start = time.time()
    for _ in r:
        c()
    end = time.time()
    t_D = end - start

    t_a = min(t_A, t_a)
    t_b = min(t_A, t_b)
    t_c = min(t_A, t_c)
    t_d = min(t_A, t_d)

print t_a
print t_b
print t_c
print t_d

## CODE: imported.py
def c():
    a = 1

## OUTPUT
# 1.02956604958
# 1.02956604958
# 1.02956604958
# 1.02956604958



_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to