0
我偶然发现了一些毫无意义的东西。我有这个Python代码,它可以做2个简单的for-loops,并且只是测量执行时间。但是,我发现从一个函数调用完全相同的代码需要一半的时间。有人能解释为什么吗?相同代码的Python不同性能
print "no function"
start_time = time.time()
for i in range(10000):
for j in range(10000):
z = i*j
print z
print("--- %s seconds ---" % (time.time() - start_time))
# VS
def Function():
start_time = time.time()
for i in range(10000):
for j in range(10000):
z = i*j
print z
print("--- %s seconds ---" % (time.time() - start_time))
print "Function Call"
Function()
这里是输出:
no function
99980001
--- 8.89359378815 seconds ---
Function Call
99980001
--- 4.64798092842 seconds ---
如果没有测试并且没有受过教育的猜测,我会说接触当地人要比全局更快,因为他们可以有些优化(通过索引而不是名字进行处理)。 –
区别在于变量的范围和查找时间。 –
你是对的,显然这个问题已经在这里得到解答了http://stackoverflow.com/questions/11241523/why-does-python-code-run-faster-in-a-function – Alex