[問題] 迭代次數太高,字典問題

看板Python作者 (尸比糸吉尸尾)時間1年前 (2022/05/13 08:59), 編輯推噓4(4011)
留言15則, 7人參與, 1年前最新討論串1/1
題目我就簡單說 我有一個類,名稱叫dot class dot(object) : def __init__(self) : self. Attr1={} Example=dot() while(k<=10000): result=繁瑣的計算過程,需要用到上一次的Attr1的值 Example. Attr1[k] =result k=k+1 請問我該怎麼讓我這方式的內存壓力小一點,我的電腦內存是16的 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.118.25 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1652403561.A.0DF.html

05/13 09:19, 1年前 , 1F
可以用functools.lru_cache不用自己刻
05/13 09:19, 1F

05/13 09:20, 1年前 , 2F
記憶體不夠,也可以物件轉pickle暫存硬碟
05/13 09:20, 2F

05/13 11:09, 1年前 , 3F
或許你根本不需要用字典記住全部結果
05/13 11:09, 3F

05/13 11:09, 1年前 , 4F
重新審視一下那個繁瑣的計算過程,也許可以大幅簡化
05/13 11:09, 4F

05/13 12:48, 1年前 , 5F
試試看field?
05/13 12:48, 5F

05/13 13:37, 1年前 , 6F
Sch大 我了解了
05/13 13:37, 6F

05/13 13:38, 1年前 , 7F
Single大,我去了解一下
05/13 13:38, 7F

05/13 13:52, 1年前 , 8F
lycan大 好,知道了
05/13 13:52, 8F

05/13 14:22, 1年前 , 9F
result 如果只是單一值的話 用 list 或 array,然後
05/13 14:22, 9F

05/13 14:22, 1年前 , 10F
可以先把需要的大小弄出來,不要讓他自己加,最慘的
05/13 14:22, 10F

05/13 14:22, 1年前 , 11F
狀況記憶體的需求可能是原先的兩倍
05/13 14:22, 11F

05/13 14:58, 1年前 , 12F
另外如果不需要中間結果,只存上一次的結果過來用即
05/13 14:58, 12F

05/13 14:58, 1年前 , 13F
05/13 14:58, 13F

05/13 23:33, 1年前 , 14F
考慮用 nympy dtype
05/13 23:33, 14F

05/14 01:31, 1年前 , 15F
看演算法能不能優化
05/14 01:31, 15F
文章代碼(AID): #1YVQrf3V (Python)