我正在使用 Python,并且我有一个递归函数,它将一个巨大的列表作为参数之一:
# Current implementation
def MyFunction(arg1, arg2, my_huge_list)
...
...
MyFunction(new_arg1, new_arg2, my_huge_list)
正如您在上面看到的,MyFunction
使用相同的列表递归调用my_huge_list
;与其他论点不同,这不会改变。而且,这个列表是巨大的。我的一个朋友建议我可以把my_huge_list
它当作一个全局变量来提高性能,否则这个巨大的列表可能会在每次迭代中被一遍又一遍地复制。
# Friend's suggestion
MyHugeList=[a,b,c, ...and many many other elements... ]
def MyFunction(arg1, arg2)
global MyHugeList
...
...
MyFunction(new_arg1, new_arg2)
使用如上所示的全局变量是否会比原始版本提高算法的性能?我的程序运行了数周,因此从长远来看,即使是轻微的改进也可能很有价值。