空间复杂度,空间指的是在执行程序码时所耗费的记忆体容量。空间复杂度与时间复杂度的表示方式相同,都用Big O来表示。时间复杂度以执行完成的步数为主,不考虑使用的记忆体大小,同样的,空间复杂度考虑的是记忆体的大小,而非执行完成的时间。
from memory_profiler import profile
@profile
def my_func():
a = [2] * (100 ** 6)
b = [10] * (2 * 10 ** 7)
del b
return a
if __name__ == '__main__':
my_func()
输出结果
Line # Mem usage Increment Occurences Line Contents
============================================================
3 12.7 MiB 12.7 MiB 1 @profile
4 def my_func():
5 20.3 MiB 7.6 MiB 1 a = [2] * (10 ** 6)
6 172.9 MiB 152.6 MiB 1 b = [10] * (2 * 10 ** 7)
7 20.3 MiB -152.6 MiB 1 del b
8 20.3 MiB 0.0 MiB 1 return a
在这里使用的是Python的memory_profiler模组,可以用来计算程序执行所占的记忆体空间,当然,若是越复杂的程序执行起来,可能会让电脑都瘫痪了(笑)
若是有兴趣进一步了解的人,可以参考下列官方文件
Abstract 昨日已先行提过Flux,可方便处理一连串指定类型事件,所以说Flux就像瑞凡,被众...
先来做个首页好了 首页要有 logo 开始游戏的按钮 来把画面上面的 logo 拿掉吧吧! 预设所有...
Hello 大家, 再两天就要放假喏! 迫不期待想要当马铃薯。 接着说媒体後续的动作, 下一个分类是...
昨天介绍完支持向量机,今天就要来介绍甚麽是分类和聚类: 通过将资料通过分类的方法分成不同的组别或者更...
铁人赛三十天心得 缘起 这次心血来潮想要参加铁人赛,最主要的原因其实是要归功於疫情公司WFH,每天通...