Advertisement

Python 生成指定大小的变量

阅读量:

我没有找到凭空出现变量的方法。因此可以考虑利用字符串运算来生成这一现象。我也曾以为大家可能都都意识到了这一点。但有一个关键点在于:

复制代码
    s=' '*2**30*4
    s=2**30*4*' '

前者通常飙到5G左右,落到4G
后者稳定停在4G

该运算的具体流程如下:
其中前者的运算分为两步:
第一步是计算2^{30}
第二步是将结果乘以单引号。
其结果乘以四倍。
随后需要清除残留数据。
其中5GB的数据量源自该过程中第一部分产生的1GB数据加上后续阶段处理后的4GB数据。
最后需要清除第一部分的数据项,
这样总的数据量将从5GB降回到4GB

复制代码
    import time
    i=' '*2**30*2
    time.sleep(2)
    del i
    time.sleep(2)
    i=2**30*2*' '
    time.sleep(2)
    del i
在这里插入图片描述

结论就是,复杂表达式的运算顺序也可能是优化的关键。

复制代码
     %%timeit
    b'\x00'*2**3

全部评论 (0)

还没有任何评论哟~