精華區beta EE_DSnP 關於我們 聯絡資訊
※ 引述《timmylin (再也不寫程式了...)》之銘言: : 不知道是哪裏寫錯了,跑到第三個Output 370GAT(163)時 : 記憶體使用就高達40幾MB,照這樣下去一定會爆炸.... : (第四個最大...) : 我cache開60000多,但是就算是60000多的cache也不至於 : 佔到數十MB(16 x 60000 byte),唯一的可能就是uniquify : 做不好才會產生多餘的BddNodeInt,但是進入Hash唯一性 : 不是只有 : if (t.isNegEdge()){ : isNegEdge = ~isNegEdge; : t = ~t; : e = ~e; : } : 處理嗎???(或者我還有盲點) 為什麼這是進入Hash唯一性? : 因為如果standize不好頂多只是時間慢,不會佔去記憶體阿 : 不好意思請老師和各位同學看看我這個情行 Anyway, you can create a global variable "hashNodeCount" to see how many nodes are inserted into the hash. Print out once a while (e.g. every 1000 insertion). Make sure the memory is from Hash table (i.e. too many BddNodeInt). However, I doubt not. Maybe there's something wrong about your recursion, where you create too many local variables... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.121.134.63