0

プログラムのテストを作成し、メモリ使用量を確認しました。何らかの理由で、同じ操作を関数でラップすると、メモリ使用量が多項式 (または指数関数的) に増加します。Python 2.7.1 のメモリ使用量を追跡するためにmemory_profilerを使用しています。

コード:

def convertIntToBitint(number): return (pow(2, number - 1))

テスト コードと結果 (少しクリーンアップ):

Line #    Mem usage    Increment   Line Contents
23     9.070 MB     0.000 MB    def test_convertBigIntToBitint(self):
24     9.070 MB     0.000 MB        result1 = convertIntToBitint(21000)
25     9.070 MB     0.000 MB        answer1 = pow(2, 20999)
27    10.496 MB     1.426 MB        result2 = convertIntToBitint(5015280)
28    11.785 MB     1.289 MB        answer2 = pow(2, 5015279)
30    70.621 MB    58.836 MB        result3 = convertIntToBitint(121000000)
31    85.367 MB    14.746 MB        answer3 = pow(2, 120999999)

convertIntToBitintがより多くのメモリを消費するのはなぜですか? また、メモリ使用量が直線的に増加しないのはなぜですか?

2rs2ts の編集

面白い。これがあなたの意図したものかどうかはわかりません。

Line #    Mem usage    Increment   Line Contents
23     9.074 MB     0.000 MB    def test_convertBigIntToBitint(self):
24    56.691 MB    47.617 MB        result3 = convertIntToBitint(121000000)
25    85.539 MB    28.848 MB        answer3 = pow(2, 120999999)
26    85.539 MB     0.000 MB        result2 = convertIntToBitint(5015280)
27    84.258 MB    -1.281 MB        answer2 = pow(2, 5015279)
28    83.773 MB    -0.484 MB        result1 = convertIntToBitint(21000)
29    81.211 MB    -2.562 MB        answer1 = pow(2, 20999)
4

0 に答える 0