gpt4 book ai didi

python - 多次使用 min() 还是将其存储在变量中对性能更好?

转载 作者:行者123 更新时间:2023-12-05 08:48:30 25 4
gpt4 key购买 nike

我有一个使用 min(list) 的小 Python 代码在同一个未更改的列表上多次,这让我想知道我是否使用像 min() 这样的函数的结果, len()等...在未更改的列表中多次使用,将这些结果存储在变量中对我来说是否更好,它是否会影响内存使用/性能?

如果非要我猜的话,我会说如果像 min() 这样的函数被调用很多次,将它存储在变量中对性能会更好,但我不确定这一点,因为我真的不知道 python 如何获取该值,或者 python 是否会自动将此值存储在列表中的某处没有改变。

最佳答案

速度

存储结果并重新使用它几乎总是比多次重新调用函数更便宜。

Python 不会缓存(存储并稍后记住)来自 min()len() 等函数的结果。

这是一个快速的速度测试:

timeit.timeit("c = min(x) + min(x)", "x = [1, 2, 3]")
0.24990593400000005

timeit.timeit("a = min(x); b = a + a", "x = [1, 2, 3]")
0.1296667110000005

第二个几乎快两倍,因为存储变量比重新调用 min 函数要便宜得多。

内存使用

如果结果是单个数字,如 min()len(),则内存使用可以忽略不计。

如果结果很重要(例如,一个很大的值表),那么您可以在完成后使用 del

将其删除
large_object = expensive_function()
do_something(large_object)
do_something_else(large_object)
del large_object

此外,当大对象超出范围时(例如,当函数返回时)或定期进行垃圾收集时,它们将自动从内存中删除。因此,del 仅在特定情况下才有必要,例如处理对对象的循环引用时。

关于python - 多次使用 min() 还是将其存储在变量中对性能更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65911867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com