Python 性能:将非常大的对象传递给函数,还是使用全局变量?
Python performance: Pass in very large object into function, or use global varaibles?
我有一张非常大的 Pillow 图像 (1920x~40,000),我正在对其进行一些操作,将图像存储为全局变量并让我的函数从中引用它是否更好?在那里,或者每秒多次将图像传递给函数?
例如:
global very_large_image
def main_function(large_image):
global very_large_image
very_large_image = large_image
while i < large_number:
image_manipulation_function()
def image_manipulation_function():
global very_large_image
#do stuff
或者:
def main_function(large_image):
while i < large_number:
image_manipulation_function(large_image)
def image_manipulation_function(very_large_image):
#do stuff
哪个在 Python3 中的性能更好?可以忽略不计吗?
Python 传递所传递对象的引用,因此它不会复制传递的图像。由于引用非常小,您在此处使用全局不会看到任何性能提升。
我有一张非常大的 Pillow 图像 (1920x~40,000),我正在对其进行一些操作,将图像存储为全局变量并让我的函数从中引用它是否更好?在那里,或者每秒多次将图像传递给函数?
例如:
global very_large_image
def main_function(large_image):
global very_large_image
very_large_image = large_image
while i < large_number:
image_manipulation_function()
def image_manipulation_function():
global very_large_image
#do stuff
或者:
def main_function(large_image):
while i < large_number:
image_manipulation_function(large_image)
def image_manipulation_function(very_large_image):
#do stuff
哪个在 Python3 中的性能更好?可以忽略不计吗?
Python 传递所传递对象的引用,因此它不会复制传递的图像。由于引用非常小,您在此处使用全局不会看到任何性能提升。