相关疑难解决方法(0)

Python切片分配内存使用情况

我在这里读了一篇关于Stack Overflow的评论,在更改列表时进行切片分配的内存效率更高.例如,

a[:] = [i + 6 for i in a]
Run Code Online (Sandbox Code Playgroud)

应该比内存更有效

a = [i + 6 for i in a]
Run Code Online (Sandbox Code Playgroud)

因为前者替换现有列表中的元素,而后者创建一个新列表并重新绑定a到该新列表,将旧内容留a在内存中,直到它可以被垃圾收集.对速度进行基准测试,后者稍快一些:

$ python -mtimeit -s 'a = [1, 2, 3]' 'a[:] = [i + 6 for i in a]'
1000000 loops, best of 3: 1.53 usec per loop
$ python -mtimeit -s 'a = [1, 2, 3]' 'a = [i + 6 for i in a]'
1000000 loops, best of 3: 1.37 usec per loop …
Run Code Online (Sandbox Code Playgroud)

python performance benchmarking memory-management

22
推荐指数
1
解决办法
3267
查看次数