簡體   English   中英

字符串編碼 memory 利用率

[英]String encode memory utilisation

str = 'text ....' //lets say size=100mb
str_utf8_size = len(str.encode('utf8'))

在 python 3 中,我想知道 Python 的str.encode()在 memory 利用率方面的工作原理

在上面的代碼中,它是否創建了 str 的副本並使用了兩倍的 memory (=200mb?)

在上面的代碼中,它是否創建了 str 的副本並使用了兩倍的 memory (=200mb?)

不,編碼的字符串可以小於或大於字符串。 例子:

aaa...aa毛
string size:  2000076
encoded size: 1000036

õõõ...õõõ
string size:  1000073
encoded size: 2000033

生成該代碼的代碼( 在線嘗試! ):

for s in 'a' * 10**6 + '毛', 'õ' * 10**6:
    print(f'{s[:3]}...{s[-3:]}')
    print('string size: ', s.__sizeof__())
    print('encoded size:', s.encode('utf8').__sizeof__())
    print()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM