提前抱歉,我对效率几乎一无所知,所以我可能需要一点额外的帮助。
我有一个调用另一个函数的函数,它传入相当大的数组。由于内存的限制,我只是将数组保存为pickle文件并在第二个函数内部进行unpickling。仅为上下文,我有64个pickle文件,每个47兆字节(总共3演出)。我将此功能调用了100,000次以上。我假设unpickling的效率远远低于unpickling一次并且通过阵列,但是我想知道我现在正在做的方式我会失去多少时间以及是否有更有效的方法来做到这一点
答案 0 :(得分:0)
这取决于您的要求。如果将array
传递给函数,python将传递该数组的reference
。而如果以解包参数的形式传递数组,则传递包含该数组的对象。
如果原始数组的顺序没有被修改,在函数内部,最好将其作为参考传递,即作为参数。
答案 1 :(得分:0)
如果您的内存限制不允许将所有文件保留在内存中,您将每次都读取该文件并将list
传递给另一个函数(它将通过引用传递)。