トップページ > プログラム > 2015年08月10日 > AGT5HrH+

書き込み順位&時間帯一覧

8 位/141 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000110010000000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Pythonのお勉強 Part50

書き込みレス一覧

Pythonのお勉強 Part50
888 :デフォルトの名無しさん[]:2015/08/10(月) 10:34:27.46 ID:AGT5HrH+
はいよ。

>>> f = 1.0
>>> f.__sizeof__()
24
>>> f10000 = 10.0 ** 10000
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: (34, 'Numerical result out of range')
>>> from decimal import Decimal as D
>>> df10000 = D("10.0") ** 10000
>>> df10000.__sizeof__()
104
>>> L = [None] * (2 ** 24)
>>> L.__sizeof__()
134217768
Pythonのお勉強 Part50
890 :デフォルトの名無しさん[]:2015/08/10(月) 11:30:47.99 ID:AGT5HrH+
>>889
malloc() が失敗する時、浮動小数の小数点以下の最大桁数と、
listの要素の数は反比例の関係にあるでしょう?
また、質問者はlistもmemoryを使う前提に気づいていないようでした。

浮動小数一つの要素のmemory sizeを知る方法、
decimal module 使ったobjectの要素のmemory sizeを知る方法、
list の要素数によってPCの使用するmemory sizeが大きく変動する事を
示すために、>>888を書きました。
Pythonのお勉強 Part50
891 :デフォルトの名無しさん[]:2015/08/10(月) 14:39:29.91 ID:AGT5HrH+
>>887
$ cat /proc/meminfo | grep Mem
MemTotal: 3867772 kB
MemFree: 2707672 kB
の環境で、

http://pastebin.ca/3096710
を実行すると、bit=26を実行できました。
bit=27は×。

よって、
list_elements =
134217727
list_elements_size_of =
1207959624
が限界付近っぽいので、

max_mem_size=1207959624
として
http://pastebin.ca/3096751
を実行して、
float_objects の最大数は、
37748737
と決定しました。

お試しあれ。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。